1
我有超過100個c#項目的解決方案。我們總是爲所有程序集製作CopyLocal選項以避免一些問題。有時候一些開發人員使用CopyLocal選項在程序集文件中選擇True。這會在以後運行軟件時產生問題MS Build fail CopyLocal True
如果CopyLocal選項爲True,是否有可能使構建活動失敗?
我們正在使用MS Build和Cruise控制網自動化構建過程。
我有超過100個c#項目的解決方案。我們總是爲所有程序集製作CopyLocal選項以避免一些問題。有時候一些開發人員使用CopyLocal選項在程序集文件中選擇True。這會在以後運行軟件時產生問題MS Build fail CopyLocal True
如果CopyLocal選項爲True,是否有可能使構建活動失敗?
我們正在使用MS Build和Cruise控制網自動化構建過程。
簡答:是!
我不是MSBuild專家,但我知道如何與NAnt做到這一點。這非常簡單,並且與MSBuild實現相同的結果應該沒有太大的區別。這是過程:
True
:count(/Project/ItemGroup/Reference/Private[text()="True"])
對於項目引用:
count(/Project/ItemGroup/ProjectReference/Private[text()="True"])
如果結果大於0,你有CopyLocal集引用到True
,所以構建失敗。 陷阱:請注意,如果節點Private
缺失,CopyLocal也被認爲是True
。
這是一個XY問題。必須處理CopyLocal = False的項目文件對於需要測試其代碼的開發者來說非常痛苦。所以他們當然會一遍又一遍地改變設置,忘記把它放回去。可能是故意的,因爲他們厭倦了這種麻煩。構建失敗只會帶來更多的麻煩。使其適用於該設置。 – 2012-01-18 18:01:48
根據主席的回答,你可以做你想問的問題。但是爲了讀取每個文件的值,爲什麼不把它重置爲'false'呢?或者我在這裏錯過了什麼? – mickeyf 2012-01-18 22:03:45