Asp.net

發布配置文件不發布所需的建構配置 (.pubxml.user)

  • June 24, 2015

考慮以下場景:

  • Alice 使用 Visual Studio 2012 創建 Web 應用程序(ASP.NET MVC 或 WebForms)。
  • Alice 創建一個名為“PRODUCTION”的發布配置文件,並在“設置”選項卡(在“發布嚮導”中)中選擇“發布”配置。
  • Alice 使用名為“PRODUCTION”的發布配置文件發布應用程序。
  • Alice 將解決方案保存到原始碼控制中。

請注意,預設情況下“ *.pubxml.user”文件不包含在原始碼管理中:http: //msdn.microsoft.com/en-us/library/ff398069.aspx

  • Bob 從原始碼管理中檢查解決方案。
  • Bob 打開解決方案並啟動發布嚮導。
  • Bob 看到選定的發布配置文件名為“PRODUCTION”。
  • Bob 點擊 Settings 選項卡(在 Publish Wizard 中)並看到顯示的配置是**“Release”**。
  • Bob 發布應用程序。
  • Bob 意識到應用程序是使用“調試”配置而不是“發布”配置發布的。

原因是關於建構配置的資訊儲存在文件“ *.pubxml.user”中(參見節點呼叫<LastUsedBuildConfiguration>)。

這種行為是有問題的,尤其是當您使用 Web 配置轉換(“Web.Release.config”)來更改連接字元串時。

=>如果我不想將“ *.pubxml.user”文件保存到原始碼管理中,我該如何解決這個問題(例如,因為這個文件可能包含其他不適合公共儲存庫的資訊)?

相關文章:

這有兩個方面;在“發布”對話框的下拉列表中共享值並支持命令行。以下是我對兩者的評論。

與團隊成員共享個人資料

當我們在 VS2012 RTM 中發布發布位時,我們正在將 LastUseBuildConfiguraiton 寫入 .pubxml.user 文件。此後,我們將其移至 .pubxml 文件本身,以便與其他團隊成員共享。您可以在以下位置獲取最新版本:

  1. ASP.NET 2012.2
  2. 最新的 Azure SDK

如果您已經安裝了其中一個並且您仍然看到配置未共享的行為,這可能是因為 .pubxml 是使用較舊的 drop 創建的。解決方案是刪除 .pubxml 和 .pubxml.user 文件並使用最新的文件重新創建。

命令行方案

對於命令行方案,需要顯式設置 Configuration 屬性。.pubxml(或 .pubxml.user)文件不能覆蓋該值。有關更多詳細資訊,請參閱我的部落格http://sedodream.com/2012/10/27/MSBuildHowToSetTheConfigurationProperty.aspx

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