asp.net发布 - 不要将web.config复制到输出目录

时间:2014-12-01 12:39:44

标签: asp.net web-config

是否可以在输出目录中不包含web.config,但在构建应用程序时仍然使用web.config?

不幸地将构建操作设置为"无" 不会复制web.config但是应用程序无法编译,因为未使用web.config然后

2 个答案:

答案 0 :(得分:0)

我建议您查看web.config 转换

它们允许您有一个版本用于调试,一个版本用于发布(部署)。

最常见的转换是连接字符串。你可以这样做:

  <connectionStrings>
    <add name="local" connectionString="Data Source=IPAddress,Port;Initial Catalog=SomeOtherDB;User ID=TopSecretUsername;Password=SecurePassword" 
    xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
  </connectionStrings>

另一个非常常见的转换是删除release的debug属性:

<compilation xdt:Transform="RemoveAttributes(debug)" />

在这里阅读更多:
http://www.asp.net/mvc/overview/deployment/visual-studio-web-deployment/web-config-transformations

这里有一个很棒的(免费)视频课程:
http://www.pluralsight.com/courses/table-of-contents/aspdotnet-mvc3-intro

答案 1 :(得分:-1)

你能做一些像this SO question中建议的那样吗?

就像在你的prj文件中替换你发现带有(未经测试)的web.config的include:

<Choose>
    <When Condition=" '$(Configuration)'=='DEBUG' ">
        <ItemGroup>
             <Reference Include="web.config" />
         </ItemGroup>
    </When>
</Choose>

正如Mihai-Andrei Dinculescu所说'愤怒'所说的那样 - 除非你有充分的理由真正希望文件不是副本而不是使用转换,否则你应该进行转换。如果你真的不想复制文件或转换不适合你的需要,你可以试试这个