使用Visual Studio Online时,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 "objReleaseAssembly.Worker.csproj-sc.App.config" to "C:abinAssembly.Worker.dll.config" .

然而,我也有一个Azure云服务项目,这是下一个构建。这里是构建失败的地方。

这是我在日志中发现的:C:asrcProjectFolderAssembly.AzureAssembly.Azure.ccproj(101,5): error MSB3030: Could not copy the file "..Assembly.WorkerbinReleaseAssembly.Worker.dll.config" because it was not found.

所以很明显,SlowCheetah创建了一个转换后的配置文件,并将其保存为.csproj-sc.app.config文件,而Azure项目寻找一个正常的app.config文件。有趣的是,在本地构建Azure项目运行良好。

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

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

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

最新更新