1
我在2臺計算機Windows和Mac上使用Xamarin.Studio。切換計算機時無法加載文件或程序集X
每次我在一個平臺上進行更改,然後切換到其他平臺上的工作時,我總是收到這些煩人的隨機錯誤。也就是說,我有一臺運行Windows的PC,在那裏我進行一些開發,然後有時在我的Mac上開發。我使用Git。
我有兩個項目。一個圖書館項目和一個單元測試項目。這些都是當前的依賴關係:
庫項目:
<package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="portable-net45+win+wpa81+wp80+MonoAndroid10+xamarinios10+MonoTouch10" />
<package id="Microsoft.Bcl" version="1.1.10" targetFramework="portable-net45+win+wpa81+wp80+MonoAndroid10+xamarinios10+MonoTouch10" />
<package id="Microsoft.Bcl.Build" version="1.0.21" targetFramework="portable-net45+win+wpa81+wp80+MonoAndroid10+xamarinios10+MonoTouch10" />
<package id="Microsoft.Net.Http" version="2.2.29" targetFramework="portable-net45+win+wpa81+wp80+MonoAndroid10+xamarinios10+MonoTouch10" />
<package id="Newtonsoft.Json" version="7.0.1" targetFramework="portable-net45+win+wpa81+wp80+MonoTouch10+MonoAndroid10+xamarinmac20+xamarinios10" />
測試項目:
<package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="net45" />
<package id="Microsoft.Bcl" version="1.1.10" targetFramework="net45" />
<package id="Microsoft.Bcl.Build" version="1.0.21" targetFramework="net45" />
<package id="Microsoft.Net.Http" version="2.2.29" targetFramework="net45" />
<package id="Newtonsoft.Json" version="7.0.1" targetFramework="net45" />
<package id="NUnit" version="2.6.3" targetFramework="net45" />
第一個問題,我是當我在Mac切換到Windows和測試將無法運行。我終於明白,我必須:
- 重新安裝的Json包庫項目
- 添加5個封裝到測試,項目(在以前的列表中的第5)
添加重定向的應用程序。配置這兩個項目的JSON:
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" /> </dependentAssembly> </assemblyBinding>
請記住,這個問題並沒有浮出水面,直到我切換到Windows ..它是編譯和運行就好Ø Mac。現在
,我換回到我的Mac,並再次另一個隨機奇怪的問題..
SetUp : System.IO.FileNotFoundException : Could not load file or assembly 'System.Net.Http, Version=1.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies.
我只是不明白,爲什麼在地球上做的這些問題,只有當我切換到另一臺電腦發生。這必須有一些問題與彆彆扭扭的.Net和Mono
的高速緩存系統我的問題是:
- 如何避免此類問題
- 如何解決這個特定的(乾淨的緩存?)錯誤?
你可能也需要重定向'System.Net.Http' ...並找出是什麼導致了這種意外的依賴 - 通常它發生在你有2個版本和一個取決於構建順序的bin文件夾中。附註:'id =「Newtonsoft.Json」version =「8.0.1」' - 不應該重定向到版本'8.0.0.0'? –
我甚至在輸出bin文件夾中看不到任何叫做System.Net.Http的dll。儘管它擁有圖書館項目所有的軟件包,但我確實在圖書館項目中擁有它,但不是測試項目。 –
請看我的答案 –