Web配置被忽略

时间:2016-05-17 15:04:29

标签: visual-studio-2015 msbuild slowcheetah

我已经编写了一个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文件,但是当你看一下时,你会发现调试值(唯一的变换)没有改变。

1 个答案:

答案 0 :(得分:0)

我最终想出了如何做到这一点。我意识到我可以简单地在章鱼环境之后重命名我的配置,并在Octopus部署用户表单中包含自定义转换。因此,我最初的方法是有缺陷的。我仍然使用慢速猎豹进行本地部署,效果非常好,但我让章鱼执行部署实例的转换来测试,UAT和生产。

在这个时候看起来我想要实现的初始任务是不可能用慢速猎豹。