對於不太清楚的標題,我很抱歉。Visual Studio是否優化傳遞引用?
我在Visual Studio(2010)中遇到了一個奇怪的行爲。
比方說,我在我的解決方案三個項目:A,B和C
A has a reference on B
B has a reference on C
C has a reference on an assembly (log4net.dll)
所有這一切,被配置爲複製本地真。
我負責的項目A和另外兩個開發人員負責項目B和C.
項目B是使用位於項目下,在其類中的一個數(靜態)方法。我正在使用B中沒有使用任何C的其他類。
當我構建解決方案(項目A配置爲主項目)時,我期望看到C及其引用程序集的結果輸出文件夾的項目A.實際發生的是,C的結果被複制到B的輸出文件夾,但沒有出現在A的輸出文件夾中。
我花了一些時間才弄清楚此原因A沒有使用任何來自C(直接或間接)的東西。
所以問題是:它是一個內置的Visual Studio的優化功能還是我做錯了什麼?
是的,MSBuild絕對知道如何做到這一點。許多程序員擁有10個以上項目的解決方案,如果該功能無法正常工作,他們的工作會非常悲慘。您的問題中的信息沒有給出任何提示,可能是錯誤的,請將MSBuild詳細程度更改爲「診斷」以獲取詳細的跟蹤。由於您剛剛開始將這些項目合併在一起,實際上並不使用*參考是簡單的解釋。 –
@HansPassant:許多程序員確實擁有10個以上項目的解決方案,但這並不意味着他們中的一個會引用顯式引用鏈中的所有其他項目。 –
這正是當然的要點。如果這些鏈條存在很容易,他們幾乎從不以真正的解決方案做。但一切仍然正確複製。 –