Xml SlowCheetah未在生成时转换文件
我有一个项目,我正试图使用SlowCheetah。 我已经创建了我的配置文件(Test.web.config)和我想要使用的所有转换 (Debug_Mock.config、Debug_SQL.config、Release) 在我的生成配置中,我有一个生成后事件,它应该将转换后的文件复制到另一个目录中,但找不到该文件 (错误xcopy退出,代码为4) SlowCheetah似乎没有像我预期的那样转换文件并将其放入输出目录(bin文件夹)。 有没有人知道为什么它不会发生,也许是某个地方的背景 仅供参考:此过程在另一台机器上工作,具有相同的项目。据我所知,同样的设置也是如此。但我可能找不到正确的位置。Xml SlowCheetah未在生成时转换文件,xml,web.config-transform,slowcheetah,xdt-transform,config-transformation,Xml,Web.config Transform,Slowcheetah,Xdt Transform,Config Transformation,我有一个项目,我正试图使用SlowCheetah。 我已经创建了我的配置文件(Test.web.config)和我想要使用的所有转换 (Debug_Mock.config、Debug_SQL.config、Release) 在我的生成配置中,我有一个生成后事件,它应该将转换后的文件复制到另一个目录中,但找不到该文件 (错误xcopy退出,代码为4) SlowCheetah似乎没有像我预期的那样转换文件并将其放入输出目录(bin文件夹)。 有没有人知道为什么它不会发生,也许是某个地方的背景 仅供参
- 启用生成详细信息(
),查看正在运行的版本与未运行的版本之间的差异Tools->Options->Projects and Solutions ->构建并运行
- 据我所知,slow Cheetah支持
文件的配置转换,但是 目前未在调试时配置app.config
。它应该将转换后的web.configs
文件放在项目的web.config
文件夹中,但项目仍然从根文件夹中的bin
config文件中读取。请在上查看构建前/构建后事件
- 您可以在调试时请求web配置转换支持,网址为
- 尝试重新安装慢速猎豹
<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>
$([System.IO.Path]::GetFullPath($(MSBuildProjectDirectory)\..\packages\SlowCheetah.2.5.10.3\tools\)
真的
$([System.IO.Path]::GetFullPath($(MSBuildProjectDirectory)\Properties\SlowCheetah\SlowCheetah.Transforms.targets))
$(缓慢的输入路径)
除此之外:
<Import Project="$(SlowCheetahTargets)" Condition="Exists('$(SlowCheetahTargets)')" Label="SlowCheetah" />
如果存在一个名为SlowCheetah的文件夹,其中包含文件SlowCheetah.Transforms.targets,请检入项目。 如果缺少此文件,请尝试以下步骤:
这将重新创建丢失的文件。使用SlowCheetah 2.5.15和Visual Studio 2015,我必须卸载nuget软件包,然后手动从相关的.csproj文件中删除以下内容:
<Import Project="$(SlowCheetahTargets)" Condition="Exists('$(SlowCheetahTargets)')" Label="SlowCheetah" />
及
$([System.IO.Path]::GetFullPath($(MSBuildProjectDirectory)\..\packages\SlowCheetah.2.5.15\tools\)
真的
$([System.IO.Path]::GetFullPath($(MSBuildProjectDirectory)\Properties\SlowCheetah\SlowCheetah.Transforms.targets))
$(缓慢的输入路径)
完成此操作并重新安装SlowCheetah nuget软件包后,我的问题就解决了。在如上所述重新安装后,我需要将
子类型
和transformOnBuild
节点添加到我的csproj文件中,它开始为我工作
<None Include="App.config">
<SubType>Designer</SubType>
<TransformOnBuild>true</TransformOnBuild>
</None>
<None Include="App.QA.config">
<DependentUpon>App.config</DependentUpon>
<IsTransformFile>True</IsTransformFile>
</None>
设计师
真的
App.config
真的
请注意,您必须为相关项目安装SlowCheetah Visual studio扩展和SlowCheetah nuget软件包,才能使转换生效 SlowCheetah 3.2.20添加了一个“功能”,旨在尊重Visual Studio中的“请勿复制”文件设置。因此,如果没有将.config文件设置为“始终复制”或“更新时复制”,则不会将其复制到输出文件夹
有关详细信息,请参阅
这是我的问题-花了三个小时调试它…这标记为已回答,但哪一步解决了问题?@TravisParks对我来说,我安装了SlowCheetah,让我从中执行添加转换和预览转换,但不会更改输出配置。然后我从nuget安装了SlowCheetah,它成功了。@ChrisCameron刚刚从网站上在VS2013 Up5上安装了SlowCheetah。预览可以工作,但在构建时不会被转换。从Nuget安装修复了这一问题。谢谢谢谢浪费了很多时间。最后,卸载扩展并从nuget安装修复了它!看看下面的csproj/vsproj答案,这个答案并没有解决我的问题,但是添加propertygroup为我解决了这个问题;我正在通过NuGet使用SlowCheetah 2.5.10.3,我的App.config文件没有被转换。我交换了上面两个元素的顺序,它开始工作。如上所述,在本地修复了此问题后,Jenkins build服务器上的构建开始失败,其他人在此处已经指出:。修复方法是将SlowCheetah.transforms.targets中的SlowCheetah版本调整为正确的2.5.10.3版本。这为我修复了它。我正在使用SlowCheetah 2.5.14这为我修复了它。PropertyGroup和导入均未添加到项目的vbproj文件中。此外,我还更新了slowcheethatoolspath中的版本号element@Toolkit您添加到SlowCheetah的csproj/project文件是为我准备的。我安装了没有创建文件夹的文件夹。所以我得到了添加/预览,但转换实际上不会发生在“卸载/重新安装”解决方案中。每次都有效!SlowCheetah文件夹是在Properties文件夹下创建的。这对我很有用,事实证明我们只需安装vs插件,忘记安装nuget软件包。感谢Thorstennon,以下解决方案对我有效:(你最终成功了吗?下面的解决方案对我都不起作用。对我来说,更改甚至没有出现在预览中。扩展和包之间的重要区别。我需要两者来进行转换。
<None Include="App.config">
<SubType>Designer</SubType>
<TransformOnBuild>true</TransformOnBuild>
</None>
<None Include="App.QA.config">
<DependentUpon>App.config</DependentUpon>
<IsTransformFile>True</IsTransformFile>
</None>