gpt4 book ai didi

visual-studio-2010 - 非网络 app.config 的 SlowCheetah 转换

转载 作者:行者123 更新时间:2023-12-02 00:10:31 27 4
gpt4 key购买 nike

我对 Sayed Hashimi 和他的公司在 SlowCheetah 上的快速发展和出色工作感到困惑,特别是 SlowCheetah 是否能够在构建时转换文件,而不仅仅是打包和发布。

我安装了 SlowCheetah,并且能够为我正在与开发团队合作部署的控制台应用程序的 app.config 自动生成构建配置实例。在构建时,将在 $(ProjectDir)\obj\x86\$(BuildConfig) 目录下创建一个新的“SlowCheetah”目录。例如,obj\x86\STAGE\SlowCheetah 目录包含一个 app.config 文件,当右键单击 STAGE 转换并选择“查看转换”时,转换已完成。

然而,\bin\$(BuildConfig) 目录包含未转换的 app.config 文件以及每个 $(BuildConfig) 转换的所有模板 - 而不是替换 bin 中的 app.config 文件\x86\STAGE 目录和来自 SlowCheetah 的目录。

构建完成且没有错误。

这是预期的操作,还是仍然无法正常工作?

@sayed-ibrahim-hashimi 每个 $(Configuration) 都有一个转换。在 Visual Studio 中查看时,转换会正确显示,并在\obj 目录树下的\slowcheetah 目录中正确转换。转换的例子是:

<?xml version="1.0" encoding="utf-8" ?>
<!-- For more information on using transformations see the web.config examples at http://go.microsoft.com/fwlink/?LinkId=214134. -->
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform
<connectionStrings>
<add name="Portal" connectionString="Data Source=transformtestserver.domain.local;Initial Catalog=TestDB;User Id=TestUser;Password=testpw1;" xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
<add name="DictionaryDatabase" connectionString="Data Source=transformtestserver.domain.local;Initial Catalog=TestDB;User Id=TestUser;Password=testpw2;" xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
<add name="LoggingDatabase" connectionString="Data Source=transformtestserver.domain.local;Initial Catalog=TestDB;User Id=TestUser;Password=testpw3;" xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings>
</configuration>

问题可能与 Nuget/解决方案配置有关。我正在处理的项目是一个非常大的解决方案的一部分。我很难安装和运行 SlowCheetah - 有一次发现 Nuget 说 SlowCheetah 已安装,但解决方案包目录不包含 SlowCheetah。

我在 TeamCity 中设置了一个解决方法,以从\obj 目录中获取转换后的 app.config 文件,但我真的很想解决这个问题,这样我就可以将 SC 推广到整个开发组。是否有我们可以查看的详细日志,它可能会指出详细信息?

最佳答案

我遇到了同样的问题。

VS 中的本地编译效果很好,但是在构建 Agent (TeamCity) 时,转换魔法并没有发生!

我找到的解决方案与 proj 文件中 xml 元素的位置

  <PropertyGroup Label="SlowCheetah">
<SlowCheetahToolsPath>$([System.IO.Path]::GetFullPath( $(MSBuildProjectDirectory)\..\packages\SlowCheetah.2.5.10.3\tools\))</SlowCheetahToolsPath>
<SlowCheetah_EnableImportFromNuGet Condition=" '$(SC_EnableImportFromNuGet)'=='' ">true</SlowCheetah_EnableImportFromNuGet>
<SlowCheetah_NuGetImportPath Condition=" '$(SlowCheetah_NuGetImportPath)'=='' ">$([System.IO.Path]::GetFullPath( $(MSBuildProjectDirectory)\Properties\SlowCheetah\SlowCheetah.Transforms.targets ))</SlowCheetah_NuGetImportPath>
<SlowCheetahTargets Condition=" '$(SlowCheetah_EnableImportFromNuGet)'=='true' and Exists('$(SlowCheetah_NuGetImportPath)') ">$(SlowCheetah_NuGetImportPath)</SlowCheetahTargets>
</PropertyGroup>

我注意到当 PropertyGroup 高于所有 ItemGroup 的元素时MsBuild.exe 最后做了转换

关于visual-studio-2010 - 非网络 app.config 的 SlowCheetah 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15709190/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com