我在Visual Studio 2013中有网站项目。我有两个发布配置文件,一个用于登台,另一个用于制作。在Configuration Manager中,我可以创建新的Active Solution Configurations但不能将新配置添加到我的下拉列表中,Debug是唯一的选项。
所以现在当我尝试使用我的生产配置文件发布时,web.config正在被Web.Debug.Config和我的web.Production.Config转换。
如何在下拉列表中添加新配置?
答案 0 :(得分:4)
如何在下拉列表中添加新配置?
你做不到。至少不是为了你需要使用这些新配置。
我会假设你真的需要知道这个:
如何在没有通过调试转换将
debug
标志应用于web.config
的情况下发布网站?
这已经发生了,只是一种令人困惑的方式。
使用“发布网站”向导发布网站时,它会将适当的转换应用于web.config
。在您的情况下,Web.Debug.Config
和Web.Production.Config
。
现在是令人困惑的部分:
默认情况下,web.debug.config
实际 从debug
移除 web.config
属性。
<compilation xdt:Transform="RemoveAttributes(debug)" />
由于遗留原因,这与丢失的网站项目文件和底层构建工具有关。
如果要停止正在应用的调试转换和,则其中没有自定义配置,您可以删除web.debug.config
。请务必添加
<compilation xdt:Transform="RemoveAttributes(debug)" />
在每个特定于环境的转换(<system.web>
等)的web.Production.Config
元素内。
我的建议是:
web.debug.config
不受影响。处于默认状态。web.<configuration>.config
)答案 1 :(得分:2)
要让我的发布设置按照我希望的方式运行:
由于网站项目中的所有发布配置文件似乎都停留在调试配置上,因此我无法避免web.debug.config转换我的默认web.config。使用此解决方案,我们只是不使用web.config进行特定于发布的转换。
我想感谢克里斯·奥尼尔(Chris O'Neill)提供的有用的,如果详细的答案,这些答案让我了解了这个解决方案。
答案 2 :(得分:1)
您可以手动修改/创建项目FSUResearch的配置。步骤是:
在解决方案资源管理器中: 右键单击项目 - &gt;卸载项目 - &gt;右键单击FSUResearch(不可用) - &gt;单击Edit FSUResearch.csproj
在此文件中,您会看到许多'PropertyGroup'标记。这些PropertyGroup由配置和平台的不同组合组成。因此,创建一个新的PropertyGroup并提供您自己的项目配置。确保提供已经是解决方案配置名称的项目配置名称(了解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文件并重新加载项目。