Visual Studio 2012 Web Deploy Publish忽略选定的配置以进行转换和构建

kap*_*tan 9 configuration msdeploy webdeploy visual-studio-2012

当我创建发布配置文件时,我可以选择我希望发布用于此配置文件的配置.选项类似于Debug,Release或任何自定义的选项,如Staging.问题是如果我选择除Release或Debug之外的任何配置,比如Staging,visual studio会完全忽略我的选择并使用Web.Release.config进行转换和构建.我做错了什么还是这个设计?似乎Publish只将Release和Debug识别为可接受的Configuration.有关这个问题的任何想法?

我正在使用Visual Studio 2012 RTM.

更新1 ::"NightlyLive - 任何CPU"配置选择:

在这里,我选择自己的自定义配置"NightlyLive":

在此输入图像描述

以下是我发布时会发生的事情:

6>------ Build started: Project: UI.Next, Configuration: Release Any CPU ------
7>------ Publish started: Project: UI.Next, Configuration: Release Any CPU ------
7>Transformed Web.config using [...]\UI.Next\Web.Release.config into obj\Release\TransformWebConfig\transformed\Web.config.
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,它使用Release Any CPU(而不是NightlyLive - 任何CPU)构建项目,并且还使用Web.Release.config(而不是Web.NightlyLive.config)转换Web.config.

更新2 ::配置文件名称重命名为"NightlyLive":

在这里,我将配置文件名称从"test"重命名为"NightlyLive".

在此输入图像描述

这是控制台输出:

6>------ Build started: Project: UI.Next, Configuration: Release Any CPU ------
7>------ Publish started: Project: UI.Next, Configuration: Release Any CPU ------
7>Transformed Web.config using [...]\UI.Next\Web.Release.config into obj\Release\TransformWebConfig\transformed\Web.config.
7>[...]\UI.Next\Web.NightlyLive.config(23,18): Warning : Argument 'debug' did not match any attributes
7>[...]\UI.Next\obj\Release\TransformWebConfig\transformed\Web.config(78,6): Warning : No attributes found to remove
7>Transformed obj\Release\TransformWebConfig\transformed\Web.config using [...]\UI.Next\\Web.NightlyLive.config into obj\Release\ProfileTransformWebConfig\transformed\Web.config.
Run Code Online (Sandbox Code Playgroud)

所以在这里,它仍在使用Release Any CPU构建.

但对于Web.config,它首先使用Web.Release.config进行转换,然后使用Web.NightlyLive.config在前一个转换之上进行第二次转换.

我认为双重转换是设计和有意义的.但是,您必须将配置文件名称重命名为配置名称以强制使用自定义转换文件这一事实看起来并不正确.

更新3 :: TestSolution添加

您可以从此处下载精简的解决方案.

首先,我创建了一个全新的vs2012解决方案,一切正常.所以我决定删除当前的解决方案并上传为测试用例.

请注意,我的解决方案最初是在vs2012中打开的vs2010解决方案,vs2012对解决方案进行了必要的修改.

更新4 ::判决

我想我的解决方案配置都搞砸了.所以基本上解决了这个问题,我删除了所有自定义的解决方案和项目配置,并再次创建了web.config转换文件.

问题解决了.

And*_*mer 12

我经历了完全相同的行为.

对我来说问题是自定义解决方案配置没有正确引用我尝试部署的Web项目中的自定义配置.

请尝试以下方法:

  1. 右键单击解决方案并输入属性
  2. 从左上角的下拉列表中选择您的自定义配置
  3. 展开Configuration Properties,然后选择Configuration
  4. 确保您的Web项目在表中选择了正确的自定义配置.

执行此操作后,使用自定义配置的Web部署正常工作.

  • +1这是偷偷摸摸的.我在工具栏上设置了正确的构建配置,项目属性视图也有正确的配置.但是,当我进入解决方案属性并展开配置时,其中一个项目选择了不同的配置.非常感谢,这对我有用. (2认同)

Say*_*imi 2

在网络发布对话框中,我们现在允许您在“设置”选项卡上指定构建配置。默认为发布。

在此输入图像描述

根据您的情况,您可以确保在那里选择了分段。仅供参考,如果您没有看到暂存作为菜单选项,那么这是因为您创建了解决方案构建配置而不是项目配置。该下拉列表是由项目构建配置值驱动的,而不是解决方案构建配置。您可以使用配置管理器编辑解决方案/项目构建配置。

在此输入图像描述