我已经编写了一个web-api服务,并使用慢速猎豹进行转换。当我使用visual studio编译和发布到服务器时,一切都很好,一切都在许多不同的配置和许多不同的配置文件(connectionStrings.config等以及web.config)中进行转换。
但是,当我使用msbuild构建时,情况并非如此。使用vanilla web.config并且没有任何变换。
我已确定我正在使用正确的/p:Configuration
并且还尝试运行TransformAllFiles
目标,但是生成的文件再次没有考虑我的Web.UAT.config文件。
我安装了慢速猎豹nuget包版本2.5.15,该项目是使用visual studio 2015生成的。
我想要进行转换的原因是我可以用章鱼打包并部署到多个服务器。目前我被困住了。
顺便说一句,如果我运行/t:TransformWebConfig
目标,这确实会对文件进行转换,但我认为这不是slowcheetah的功能,所以并不是真正需要的。
重现此问题的步骤
1)创建一个web api 2项目熊骨头 2)加入慢猎豹 3)安装慢速猎豹加入for visual studio 2015预览 4)根据版本为UAT添加新配置。 5)退出命令行。
发出命令msbuild / t:TransformAllFiles / p:Configuration = UAT .csproj。
注意在输出中你会看到类似于:
的内容> G:\dev\c#\TestCheetah\TestCheetah>msbuild /t:TransformAllFiles
> /p:Configuration=UAT TestCheetah.csproj Microsoft (R) Build Engine
> version 14.0.25123.0 Copyright (C) Microsoft Corporation. All rights
> reserved.
>
> Build started 17/05/2016 19:32:44. The target "_ConvertPdbFiles"
> listed in a BeforeTargets attribute at "C:\Program Files
> (x86)\MSBuild\14.0\Microsoft.Com
> mon.targets\ImportAfter\Xamarin.Common.targets (34,37)" does not exist
> in the project, and will be ignored. The target "_CollectPdbFiles"
> listed in an AfterTargets attribute at "C:\Program Files
> (x86)\MSBuild\14.0\Microsoft.Com
> mon.targets\ImportAfter\Xamarin.Common.targets (34,70)" does not exist
> in the project, and will be ignored. The target "_CollectMdbFiles"
> listed in a BeforeTargets attribute at "C:\Program Files
> (x86)\MSBuild\14.0\Microsoft.Com
> mon.targets\ImportAfter\Xamarin.Common.targets (40,38)" does not exist
> in the project, and will be ignored. The target "_CopyMdbFiles" listed
> in an AfterTargets attribute at "C:\Program Files
> (x86)\MSBuild\14.0\Microsoft.Common
> .targets\ImportAfter\Xamarin.Common.targets (40,71)" does not exist in
> the project, and will be ignored. Project
> "G:\dev\c#\TestCheetah\TestCheetah\TestCheetah.csproj" on node 1
> (TransformAllFiles target(s)). TransformAllFiles: Copying file from
> "Web.config" to "obj\UAT\TestCheetah.csproj-sc.App.config". Done
> Building Project
> "G:\dev\c#\TestCheetah\TestCheetah\TestCheetah.csproj"
> (TransformAllFiles target(s)).
>
>
> Build succeeded.
> 0 Warning(s)
> 0 Error(s)
请注意,它表示已经转换了web.config文件,但是当你看一下时,你会发现调试值(唯一的变换)没有改变。
答案 0 :(得分:0)
我最终想出了如何做到这一点。我意识到我可以简单地在章鱼环境之后重命名我的配置,并在Octopus部署用户表单中包含自定义转换。因此,我最初的方法是有缺陷的。我仍然使用慢速猎豹进行本地部署,效果非常好,但我让章鱼执行部署实例的转换来测试,UAT和生产。
在这个时候看起来我想要实现的初始任务是不可能用慢速猎豹。