是否有ASP.NET网站的“发布”配置?

时间:2015-05-11 17:15:59

标签: asp.net visual-studio

我使用Visual Studio进行网站开发(VS 2010 Ultimate和VS 2012 Professional)。更具体地说,我是通过 File>创建了这个网站的。新网站,所以我不相信这是一个项目。

在开发网站时,我在web.config文件中启用了debug="true"。发布时,我手动更改为debug="false"

<configuration>
    <system.web>
        <compilation debug="true" strict="true" explicit="true" targetFramework="4.5">
    </system.web>
</configuration>

解决方案中有两个配置文件:“web.config”和“web.Debug.config”。

这是各种论坛文章和“编程ASP.NET”书籍所要做的,但我想知道是否有办法让debug="true"用于本地开发并自动切换到debug="false"时使用 Build&gt;发布网站所以我不必手动更改web.config文件?

根据this forum answer,“无法为您的网站配置发布配置。”

请注意,这是网站项目,看起来可能无法根据评论建议添加其他配置。一个可能有效的答案是“不,在这种情况下不可能。”

是否有其他方法可以在不使用手动更改调试设置的当前解决方法的情况下实现预期结果?

3 个答案:

答案 0 :(得分:1)

抱歉,这与它是一个&#34;网站&#34;有关。类型项目,没有编译:

Configuration of publishing an ASP.NET web site

引用上面的上一位回应者:

&#34;网站项目没有可用的发布配置,但它没有任何区别,因为它们没有编译。另一方面,Web应用程序项目可以编译并具有两种配置。&#34;

答案 1 :(得分:1)

根据可用的参考资料,对于&#34; ASP.NET网站&#34;不可能有单独的发布配置。

所提出的问题的答案是否:目前不可能。在发布然后将其更改回来时手动更改调试属性是唯一的选择。

你怎么办?如果您确实需要发布配置和调试配置,则可能的选项是Converting a Web Site Project to a Web Application Project。虽然不能直接回答所提出的问题,但它是另一种选择。

答案 2 :(得分:0)

对于某些项目,我设置了Environment appSetting,并将该环境中的所有其他键限定为范围。

例如:

<add key="Environment" value="Development"/>
<add key="Development.Title" value="My Dev App"/>
<add key="Production.Title" value="My Production App"/>

<connectionStrings>
    <add name="DbContext.Development" connectionString="Initial Catalog=DatabaseDev;...." 
        providerName="System.Data.SqlClient" />
    <add name="DbContext.Production" connectionString="Initial Catalog=DatabaseProd;...." 
        providerName="System.Data.SqlClient" />
  </connectionStrings>

然后你会创建一个Configuration课程,通过寻找以下内容来提取appSettingsconnectionStrings

appSetting

string.Format("{0}.Title", ConfigurationManager.AppSettings["Environment"])

connectionString

string.Format("DbContext.{0}", ConfigurationManager.AppSettings["Environment"])

不完美但是这样只需要在没有Publish配置转换帮助的情况下替换一个web.config值而不是一堆。