Visual Studio 2013 年网站项目 - 在配置管理器中更改配置
Visual Studio 2013 Website Project - Change Configuration in Configuration Manager
我在 Visual Studio 2013 年有一个网站项目。我有两个发布配置文件,一个用于暂存,另一个用于生产。在配置管理器中,我可以创建新的活动解决方案配置,但无法将新配置添加到我的下拉列表中,调试是唯一的选项。
所以现在当我尝试使用我的生产配置文件发布时,web.config 正在被 Web.Debug.Config 和我的 web.Production.Config 转换。
如何向下拉列表中添加新配置?
您可以modify/create手动配置 FSUResearch 项目。步骤是:
在解决方案资源管理器中:
右键单击项目 -> 卸载项目 -> 右键单击 FSUResearch(不可用) -> 单击编辑 FSUResearch.csproj
在这个文件中你会看到很多'PropertyGroup' tags. These PropertyGroups consists of different combinations of configuration and platform. So create a new PropertyGroup and give your own project configurations. Make sure to give the project configuration name that is already a solution configuration name (Understand build configurations).
例如:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Production|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
保存更改,然后再次右键单击 .csproj 文件并重新加载项目。
How do I add new Configurations to the dropdown?
你不能。至少不是为了你需要使用这些新配置的目的。
我假设你真的需要知道这个:
How can I publish a web site without the debug
flag being applied to the web.config
by the debug transform?
这已经在发生,只是以一种令人困惑的方式。
当您使用“发布网站”向导发布网站时,它会将适当的转换应用到 web.config
。在您的情况下,Web.Debug.Config
和 Web.Production.Config
.
现在是令人困惑的部分:
默认情况下,web.debug.config
实际上 从 web.config
中删除 debug
属性。
<compilation xdt:Transform="RemoveAttributes(debug)" />
这是遗留原因,与丢失的网站项目文件和底层构建工具有关。
如果您想停止正在应用的调试转换并且您没有自定义配置,您可以删除web.debug.config
。请务必添加
<compilation xdt:Transform="RemoveAttributes(debug)" />
在每个环境特定转换(web.Production.Config
等)的 <system.web>
元素内。
我的建议是:
- 保持
web.debug.config
不变。处于默认状态。
- 为每个环境创建一个发布配置文件。
- 为每个发布配置文件添加一个转换(
web.<configuration>.config
)
- 将任何特定于环境的配置放入适当的转换文件中。
为了让我的发布设置按照我想要的方式工作,我必须:
- Return web.debug.config 回到默认内容(我在这里进行了一些转换,用于我的临时环境)
- 对于 /App_Data/PublishProfiles/ 中的每个发布配置文件,右键单击并 select 添加配置转换以在站点的根目录下创建一个新的配置文件(注意它不会嵌套在默认 web.config 除非配置文件标题为调试或发布,如果你问我有点奇怪)
- 向这些新配置中的每一个添加任何相关转换
由于网站项目中的所有发布配置文件似乎都停留在调试配置上,我无法避免 web.debug.config 转换我的默认设置 web.config。使用此解决方案,我们根本不使用 web.config 来发布特定的转换。
我想感谢 Chris O'Neill 的帮助,虽然冗长,但他的回答让我了解了这个解决方案。
我在 Visual Studio 2013 年有一个网站项目。我有两个发布配置文件,一个用于暂存,另一个用于生产。在配置管理器中,我可以创建新的活动解决方案配置,但无法将新配置添加到我的下拉列表中,调试是唯一的选项。
所以现在当我尝试使用我的生产配置文件发布时,web.config 正在被 Web.Debug.Config 和我的 web.Production.Config 转换。
如何向下拉列表中添加新配置?
您可以modify/create手动配置 FSUResearch 项目。步骤是:
在解决方案资源管理器中: 右键单击项目 -> 卸载项目 -> 右键单击 FSUResearch(不可用) -> 单击编辑 FSUResearch.csproj
在这个文件中你会看到很多'PropertyGroup' tags. These PropertyGroups consists of different combinations of configuration and platform. So create a new PropertyGroup and give your own project configurations. Make sure to give the project configuration name that is already a solution configuration name (Understand build configurations).
例如:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Production|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
保存更改,然后再次右键单击 .csproj 文件并重新加载项目。
How do I add new Configurations to the dropdown?
你不能。至少不是为了你需要使用这些新配置的目的。
我假设你真的需要知道这个:
How can I publish a web site without the
debug
flag being applied to theweb.config
by the debug transform?
这已经在发生,只是以一种令人困惑的方式。
当您使用“发布网站”向导发布网站时,它会将适当的转换应用到 web.config
。在您的情况下,Web.Debug.Config
和 Web.Production.Config
.
现在是令人困惑的部分:
默认情况下,web.debug.config
实际上 从 web.config
中删除 debug
属性。
<compilation xdt:Transform="RemoveAttributes(debug)" />
这是遗留原因,与丢失的网站项目文件和底层构建工具有关。
如果您想停止正在应用的调试转换并且您没有自定义配置,您可以删除web.debug.config
。请务必添加
<compilation xdt:Transform="RemoveAttributes(debug)" />
在每个环境特定转换(web.Production.Config
等)的 <system.web>
元素内。
我的建议是:
- 保持
web.debug.config
不变。处于默认状态。 - 为每个环境创建一个发布配置文件。
- 为每个发布配置文件添加一个转换(
web.<configuration>.config
) - 将任何特定于环境的配置放入适当的转换文件中。
为了让我的发布设置按照我想要的方式工作,我必须:
- Return web.debug.config 回到默认内容(我在这里进行了一些转换,用于我的临时环境)
- 对于 /App_Data/PublishProfiles/ 中的每个发布配置文件,右键单击并 select 添加配置转换以在站点的根目录下创建一个新的配置文件(注意它不会嵌套在默认 web.config 除非配置文件标题为调试或发布,如果你问我有点奇怪)
- 向这些新配置中的每一个添加任何相关转换
由于网站项目中的所有发布配置文件似乎都停留在调试配置上,我无法避免 web.debug.config 转换我的默认设置 web.config。使用此解决方案,我们根本不使用 web.config 来发布特定的转换。
我想感谢 Chris O'Neill 的帮助,虽然冗长,但他的回答让我了解了这个解决方案。