根据我读到的内容,只要您有一个与发布配置文件的名称相匹配的转换,就应该应用它,但对我来说情况并非如此。
发布个人资料
PublisProfiles
dev.pubxml
local.pubxml
变换
Web.Config
Web.Debug.config
Web.local.config
Web.Release.config
当我使用本地配置发布时,我看到了:
Transformed Web.config using C:\...\Web.Release.config into obj\Release\TransformWebConfig\transformed\Web.config.
所以它使用了Release.config ..我打开了local.pubxml并试图改变这个
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
为:
<LastUsedBuildConfiguration>local</LastUsedBuildConfiguration>
然后它使用Web.Debug.config转换。
dev,release,局部变换除了少数转换属性外是相同的。
答案 0 :(得分:6)
似乎是一个错误,因为我终于得到了它的工作:
删除Web.Debug.config
发布本地(我的Web.local.config正在应用)
右键单击Web.Config“添加配置转换”以恢复Web.Debug.config
确认转换仍然有效
答案 1 :(得分:4)
发布管道应该使用 您的配置文件的转换和构建配置转换。
这样做的逻辑是您的配置文件转换可能具有特定于目标的设置(例如,在生产与暂存中使用哪些连接字符串),但您的构建配置具有特定于构建的设置(例如,Debug具有与调试相关的设置,但是发布把它们关掉)。允许您混合和匹配这些可以提供更大的灵活性(需要在启用调试设置的情况下发布到Staging?只需将Debug构建配置与Staging配置文件一起使用)。来自web.YourProfile.config的设置将始终否决任何先前的转换。
答案 2 :(得分:3)
我的问题与平台配置有关:
在Configuration Manager窗口中,您可以选择配置名称(&#34; Active solution configuration&#34; combobox)和目标平台(&#34; Active solution platform&#34; combobox)。我正确地为每个项目设置了我的新配置(&#34; MyStagingConfig&#34;,比如说),但忘记了平台 - 所以我在&#34;混合平台&#34;中配置了所有配置。
当我使用&#34; MyStagingConfig - 任何CPU&#34;发布项目时,它使用Web.Staging.config
文件而不是Web.MyStagingConfig.config
转换了配置。有点头疼之后,我意识到&#34;任何CPU&#34;平台,我没有配置,默认配置为使用&#34; Staging&#34; config(因为我在创建&#34; MyStagingConfig&#34时从&#34; Staging&#34; config中导入了设置。)。
答案 3 :(得分:1)
在Configuration Manager中,检查每个&#34; Active解决方案配置&#34;并确保&#34;配置&#34;列对每个项目都是正确的。 (就我而言,开发人员不小心改变了其中一个值。)
答案 4 :(得分:1)
在你的csproj中,你会发现看起来像......的代码。
<Target Name="BeforeBuild" Condition="'$(PublishProfileName)' == '' And '$(WebPublishProfileFile)' == ''">
<TransformXml Source="Web.config" Transform="Web.$(Configuration).config" Destination="Web.config" />
</Target>
这是默认值。注意,你可以修改它,但我不推荐这个。
我建议您检查构建配置设置。从菜单中选择Build > Configuration Manager
。验证为项目选择的配置是否是要使用的配置。 I.E.如果您为web.config所在的主构建项目选择了Release
,则在第二列中,即使您的解决方案配置标题为Release
,也会进行Debug
转换。将Release
更改为Debug
(或相应的设置),它将解决您的问题。
答案 5 :(得分:0)
在VS2015中还有一个错误,但差别很小:在我的情况下,我看到当我在解决方案级别创建新的配置文件时,它不适用于mvc项目。它甚至没有出现在下拉列表中。
但是,当我从mvc项目中单击New时(带有复选框&#34;创建新的解决方案配置&#34;选中),只有那时我的mvc项目才会出现新的配置文件。