Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net Can';切换计算机时,请不要加载文件或程序集X_.net_Xamarin Studio - Fatal编程技术网

.net Can';切换计算机时,请不要加载文件或程序集X

.net Can';切换计算机时,请不要加载文件或程序集X,.net,xamarin-studio,.net,Xamarin Studio,我正在Windows和Mac两台机器上使用Xamarin.Studio 每次我在一个平台上进行更改,然后切换到另一个平台上工作时,都会遇到这些恼人的随机错误。也就是说,我有一台运行Windows的电脑,我在那里进行一些开发,然后有时在Mac上进行开发。我使用Git 我有两个项目。库项目和单元测试项目。这些是当前的依赖项: 图书馆项目: <package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework

我正在Windows和Mac两台机器上使用Xamarin.Studio

每次我在一个平台上进行更改,然后切换到另一个平台上工作时,都会遇到这些恼人的随机错误。也就是说,我有一台运行Windows的电脑,我在那里进行一些开发,然后有时在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" />
我就是不明白为什么这些问题只会在我切换到另一台电脑时发生。这一定是因为botch.Net和Mono的缓存系统有问题

我的问题是:

  • 如何避免此类问题(清除缓存?)
  • 如何修复此特定错误

我告诉Xamarin.Studio在System.Net.Http上进行“本地复制”,从而解决了这个特殊错误:

  • 我注意到System.Net.Htpp.dll甚至不在bin文件夹中(对于测试项目)
  • 我可以看到项目正在引用它
  • 右键单击->属性
  • 选中“本地副本”(将引用的程序集复制到输出文件夹,默认为否)
  • 现在我可以在bin中看到dll了
  • 测试项目现在在测试板中运行良好

这是如此奇怪和浪费时间的行为,修复它确实令人沮丧,也不有趣。

您可能还需要重定向
System.Net.Http
。。。并找出是什么导致了这种意外的依赖关系——通常情况下,当您有两个版本,并且根据构建顺序在bin文件夹中一个覆盖另一个版本时,会发生这种情况。旁注:
id=“Newtonsoft.Json”version=“8.0.1”
-不应该重定向到version
8.0.0.0
?我甚至在名为System.Net.Http的输出bin文件夹中看不到任何dll。我确实在图书馆项目中有它,只是不是测试项目。。。即使它有图书馆项目的所有包。请看我的答案
  <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" />
<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>
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.