Asp.net

使用 Visual Studio 2013 發佈時如何排除 web.config?

  • August 30, 2021

在 Visual Studio 2013 中使用“發佈網站”功能時。如何排除發布 web.config 以使其不會覆蓋伺服器 web.config?

除了 VS 版本之外,該問題與以下問題相同。

使用 Visual Web Developer Express 發佈時如何排除 web.config?

但是,它的解決方案不適用於 VS2013。在 VS2013 中找不到“建構操作”選項。並且設置“ExcludeFilesFromDeployment”會導致編譯問題。

只需選擇 web.config 屬性並將“建構操作”更改為“無”並將“複製到輸出目錄”更改為“不複製”

我知道這是一篇舊文章,有舊答案,但對我來說,兩種描述的解決方案都是錯誤的。

Web.config 風格在操作環境憑據時會引發安全風險,並且“Build Action”=“None” 解決方案破壞了在本地調試項目的可能性,因為 Web.Config 文件永遠不會出現在“bin”目錄中.

更清潔的解決方案是這裡描述的:

<https://docs.microsoft.com/fr-fr/aspnet/web-forms/overview/deployment/advanced-enterprise-web-deployment/excluding-files-and-folders-from-deployment>

這基本上是創建一個ProjectName .wpp.targets 文件,其中包含發布項目時要排除的文件/文件夾列表。

要從名為Blog的項目中刪除Web.config ,您需要創建一個名為Blog.wpp.targets的文件,其內容如下:

文件:Blog.wpp.targets

&lt;?xml version="1.0" encoding="utf-8" ?&gt;
&lt;Project ToolsVersion="4.0"
        xmlns="http://schemas.microsoft.com/developer/msbuild/2003"&gt;
 &lt;ItemGroup&gt;
   &lt;ExcludeFromPackageFiles Include=".\Web.config"&gt;
     &lt;FromTarget&gt;Blog.wpp.targets&lt;/FromTarget&gt;
   &lt;/ExcludeFromPackageFiles&gt;
 &lt;/ItemGroup&gt;
&lt;/Project&gt;

無需更改項目或 .csproj 文件中的任何內容。

引用自:https://stackoverflow.com/questions/30025340