使用Visual Studio Online,SlowCheetah转换失败

时间:2014-06-16 13:41:09

标签: azure tfs visual-studio-2013 azure-devops slowcheetah

我们正在使用SlowCheetah为项目进行app.config转换。但是,在尝试将构建过程移动到Visual Studio Online时,我无法再构建解决方案。构建失败,因为找不到.dll.config文件。我相信这是由SlowCheetah引起的。

以下是我们正在使用的内容:SlowCheetah 2.5.10.6。作为构建模板,我正在使用TfvcTemplate.12.xaml进程。我的NuGet版本为2.8,解决方案已启用包恢复。

我遇到过一些类似的问题,但大多数解决方案适用于VS2012或旧版本的SlowCheetah和NuGet。


6月17日更新

在仔细查看MSBuild生成的日志文件后,我发现转换成功,当我的项目构建完成后,我在日志中看到了这一行:Copying file from "obj\Release\Assembly.Worker.csproj-sc.App.config" to "C:\a\bin\Assembly.Worker.dll.config"

但是,我还有一个Azure云服务项目,它是下一个构建的。这是构建失败的地方。

这是我在日志中找到的:C:\a\src\ProjectFolder\Assembly.Azure\Assembly.Azure.ccproj(101,5): error MSB3030: Could not copy the file "..\Assembly.Worker\bin\Release\Assembly.Worker.dll.config" because it was not found.

显然,SlowCheetah创建了一个转换后的配置文件并将其保存为.csproj-sc.app.config文件,而Azure项目则查找正常的app.config文件。有趣的是,在本地构建Azure项目可以正常工作。

1 个答案:

答案 0 :(得分:0)

最后,我通过更改SlowCheetah.Transforms.targets文件夹中的Properties文件来解决问题。

在第157行,我插入了以下代码,将转换后的文件复制到Azure期望的路径:

<Copy Condition=" '$(_Sc_HasAppConfigTransform)'=='true' "
  SourceFiles="$(__SC_IntermediateAppConfig)"
  DestinationFiles="$(MSBuildProjectDirectory)\bin\Release\$(MSBuildProjectName).dll.config"
  SkipUnchangedFiles="true" ContinueOnError="false" />