2011-04-16 21 views
1

我想讓我的構建腳本自動添加(或刪除)來自構建時的c#項目中的文件。我看到csproj文件中的條目告訴vs2010該文件在項目中是相對簡單的。在構建腳本中編輯csproj文件是一件常見的事情嗎?

我在想我可以使用構建腳本來編輯csproj文件來添加應該在那裏的文件並刪除不應該基於生成腳本運行的某些邏輯的文件。

有人會試圖說出來嗎?

感謝

艾薩克

+1

如果你知道你需要被人談論離開這裏,你知道這是一個壞主意。你在問_why_這是一個壞主意嗎? – Oded 2011-04-16 18:55:44

+0

是啊爲什麼這是一個壞主意? – 2011-04-16 18:56:29

+0

我們是否應該猜測您對此有充分的理由? – 2011-04-16 19:34:06

回答

3

這不是一個平常的事,沒有。

我不喜歡它,原因很簡單:如果您在本地簽出時運行構建腳本,它將更改結帳。在我的書中,完美的構建腳本是可逆的,只需刪除構建輸出和任何中間目錄即可。

如果您希望根據文件的構建位置來包含/排除文件,那麼最好的做法是創建額外的構建配置,在其中設置特殊的條件編譯符號,並在源文件中使用#if文件。

或者,您可以簡單地將一個Condition屬性放在.csproj文件中,因爲它只是一個MSBuild文件。事情是這樣的:

<ItemGroup> 
    <Compile Include="Something.cs" Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' "/> 

(注意 - 我沒有測試以上,但我認爲它應該工作)

+0

這是一個很好的觀點。忘了那個。 – 2011-04-16 19:54:04