的舊版本我有:的MSBuild - 用匯編
- 的共享的功能性[A]
- 的另一種文庫[B]甲庫, 引用A的V1 [A1]
我目前的Visual Studio解決方案有:
- dll [L],其中(文件)引用B
- WindowsService [S],其中(項目)引用L,並且還具有對A,[A2]的更新但向後兼容版本的文件引用。
當我在Visual Studio中構建解決方案時,一切正常。 S的bin文件夾包含L,B和A2(與B兼容,因此效果很好)。
但是,如果我使用MSBuild(通過TeamBuild)構建,最終構建文件夾以L,B和A1結束。 A1沒有S所要求的庫A的新特性,所以當你試圖運行它時,S會落空。
我已經閱讀了一些建議與MSBuild忽略的.sln構建順序有關的事情。
我發現L的bin目錄包含B和A1,正如我所料,因爲沒有任何內容對A2有任何引用。所以假設當MSBuild構建了L(本地拉入B和A1)和S(拉入L和A2)時,它必須將所有二進制文件合併到構建的最終輸出中。我不明白的是,選擇A1(從L bin)到A2(從S bin)?
我很欣賞沒有什麼可以說它應該是另一種方式,但我不知道MSBuild使用什麼標準來進行此調用。
任何人都可以對此有所瞭解嗎?