我試圖阻止Visual Studio
覆蓋不應在構建過程中使用的項目的二進制文件夾。成像解決方案如下結構:Visual Studio更新不應該構建的項目的二進制文件
App1 -> LibB -> LibA
每次我試圖建立LibB
項目(建設/改造),它在我的App1
二進制文件夾代替LibA.dll
。真正的問題在於App1
和LibB
所使用的LibA.dll
的不同版本。成像我有另一個App2
項目:
App1 -> LibB (v2) -> LibA (v2) App2 -> LibB (v2) -> LibA (v2) LibB (v2) -> LibA (v1)
而且現在每次我建立了App1
項目它毀了我的App2
項目的二進制文件夾,因爲當LibB
項目建設其移動LibA.dll (v1)
我App2
二進制文件夾不是預期的行爲。
PS#1:我無法更新LibB (v2)
使用LibA (v2)
只是因爲它是一個簡單的問題描述,就像我上面描述有很多依賴。我們說這將是我長期的解決方案。
PS#2:如果你試圖建立LibB
項目將更新App1
和App2
二進制文件夾與LibA.dll (v1)
和破壞兩種應用項目。
ps#3:我重新創建了一個具有類似依賴關係模型的測試解決方案,它工作得很好,所以這是我正試圖解決的現有解決方案的問題。
如何防止Visual Studio
從孩子的項目正在興建時更新父項目?
一些隨機點:如果你看看構建配置管理器是一樣的平臺,如x86或任何CPU。除了正常的項目依賴項之外,您的某個項目可能會顯式地將一箇舊的LibA(v1)重新渲染並顯式複製,例如「包含在項目中」,並且您確實希望引用通過項目依賴項進入。如果您在實際項目和解決方案文件中搜索lib名稱作爲字符串,則可能會看到odball「強制」引用或甚至是「Linked」引用。我已經看到了與Winforms一起真正在兩個項目中的情況。 –