Asp.net
發布配置文件不發布所需的建構配置 (.pubxml.user)
考慮以下場景:
- 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 文件本身,以便與其他團隊成員共享。您可以在以下位置獲取最新版本:
如果您已經安裝了其中一個並且您仍然看到配置未共享的行為,這可能是因為 .pubxml 是使用較舊的 drop 創建的。解決方案是刪除 .pubxml 和 .pubxml.user 文件並使用最新的文件重新創建。
命令行方案
對於命令行方案,需要顯式設置 Configuration 屬性。.pubxml(或 .pubxml.user)文件不能覆蓋該值。有關更多詳細資訊,請參閱我的部落格http://sedodream.com/2012/10/27/MSBuildHowToSetTheConfigurationProperty.aspx。