我在两台Windows和Mac机器上使用Xamarin.Studio。
每次我在一个平台上进行更改然后切换到另一个平台上工作时,我会不断收到这些恼人的随机错误。也就是说,我有一台运行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并且测试无法运行时。我终于意识到我必须:
将app.config中的重定向添加到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.
我无法弄清楚为什么地球上这些问题只会在我切换到另一台PC时发生。这必须是botch .Net和Mono的缓存系统的一些问题
我的问题是:
答案 0 :(得分:2)
我设法通过告诉Xamarin.Studio做一个&#34; Local Copy&#34;来解决这个特殊的错误。在System.Net.Http:
这是一种奇怪且浪费时间的行为,它确实令人沮丧,修复起来并不好玩。