我的代碼依賴於第三方庫(dll)。具有相同名稱的程序集忽略提示路徑
由於Nugget's inability to manage different platforms(also here),我創建了兩個具有相同代碼重複(保持代碼爲最小 - 基本上是API包裝)的項目。
一個項目引用了x86版本的dll和其他x64。
我的解決方案中只有一個項目引用了這些項目。
它引用了他們兩個,並且這樣做條件(所以當我建立與64位配置項目引用64 dllis引用等)
它的.csproj包含類似:
ProjectReference Include="..\3rdPartyModule.x86\3rdPartyModule.x86.csproj" Condition="'$(Platform)' == 'x86'"
和
ProjectReference Include="..\3rdPartyModule.x64\3rdPartyModule.x64.csproj" Condition="'$(Platform)' == 'x64'"
現在,奇怪的事情發生了:
如果我卸載這兩個項目,然後裝入冷杉st x86的一個,然後是x64的,在x64的引用實際上表明它指向的是x86 dll(我可以看到路徑)。
如果我改變加載的順序,那麼這是另一種方式:x64很好,但x86引用的是x64版本!
我的猜測是,VS找到一個名字已經在內存中的組合,並自動將第二個引用到第一個。
這是一個已知的問題?有沒有辦法解決它?
你似乎是對的,它確實是一個UI錯誤(它還沒有被修復)。 現在還不能信任UI ... –