2016-07-22 48 views
2

我的應用程序中有一個可選的配置文件,用於實例特定的配置。該應用程序沒有它,只有在你想要配置一些附加功能時纔有必要。因此,它不應包含在源代碼管理中,因爲每個開發人員和客戶端部署都不需要它,而那些執行的部署將具有不同的值。csproj/msbuild可能包含文件作爲可選內容嗎?

我有一個問題,搞清楚如何配置這個連續部署。我可以在生成服務器上生成文件,而不會出現問題。 但是,由於MsDeploy讀取csproj以確定要部署哪些文件,因此該文件必須由我的csproj跟蹤以實際移至部署服務器。 但是如果我通過csproj跟蹤它,那麼它就不再是可選的了,我不能在沒有它的情況下構建應用程序。我使用的Mercurial沒有commit-one-version-ignore-後繼功能(git的--assume-unchanged),所以選項在這方面看起來相當有限。我是一個非常堅定的信徒,應該可以克隆一個倉庫並立即運行這個項目,所以我真的不喜歡這種無法構建的東西。

csproj文件中是否有方法表明應該將文件包含爲內容(如果存在),否則將被忽略?

回答

4

如果這是在目錄中唯一的config文件,這時你可以手動編輯.csproj的文件通過文件掩碼來引用您的文件:

<ItemGroup> 
    <Compile Include="*.config"/> 
</ItemGroup> 
+0

嗯......我知道有關文件模式,但沒」在這種情況下,請考慮它。這是一個不錯的主意。應該注意的是,你應該不使用Visual Studio來創建或刪除配置文件**,因爲它會自動擴展模式,並且不再有效。 (這仍然是VS 2015 Update 2中的一個bug) –

相關問題