加载程序集时出现异常:System.IO.FileNotFoundException:无法加载程序集'System.ValueTuple,Version = 4.0.2.0,

时间:2017-11-21 07:53:41

标签: c# ios xamarin charts xamarin.forms

我尝试使用Microchart将图表包含到我的xamarin表单应用程序中,当安装Microchart和Microchart.forms块时,我无法再次构建我的项目,它会出现以下错误

  

严重级代码描述项目文件行抑制状态   加载程序集时出现错误异常:System.IO.FileNotFoundException:无法加载程序集'System.ValueTuple,Version = 4.0.2.0,Culture = neutral,PublicKeyToken = cc7b13ffcd2ddd51'。也许它在Mono for Android配置文件中不存在?   文件名:'System.ValueTuple.dll'      at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve(AssemblyNameReference reference,ReaderParameters parameters)      在Xamarin.Android.Tasks.ResolveAssemblies.AddAssemblyReferences(ICollection`1程序集,AssemblyDefinition程序集,布尔topLevel)      在Xamarin.Android.Tasks.ResolveAssemblies.Execute()Xceed365m4.Droid C:\ Program Files(x86)\ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common.targets 1410
  00

我安装了System.ValueTuple,版本= 4.4。请问我该如何解决这个问题?

5 个答案:

答案 0 :(得分:1)

我猜你使用的是.net框架版本4.7。这是一个错误,更多信息参考,https://github.com/dotnet/standard/issues/476

解决方法是在app.config中使用绑定重定向。

 <dependentAssembly>
        <assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral"/>
        <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.4.0.0"/>
      </dependentAssembly>

如果没有尝试从您的解决方案手动添加引用。 从nuget手动下载System.ValueTuple并从您的解决方案中引用此dll。

右键单击References文件夹 - &gt;添加参考 - &gt;浏览位置 - &gt;添加它。 清洁和建设。

答案 1 :(得分:1)

我使用Xamarin.Forms netstandard2.0在Windows上工作,在添加项目引用后我遇到了类似的错误。

我的解决方案是......添加引用&#34; System.Configuration.dll&#34; (..Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ System.Configuration.dll)到.Net标准项目。

答案 2 :(得分:0)

我遇到了类似的错误,结果发现我的机器上运行了一些僵尸构建进程。有三个MSBuild.exe在没有Visual Studio打开的情况下运行。手动杀死它们,错误就消失了。

答案 3 :(得分:0)

经过多次搜索,我的解决方案是在我的系统上更新我的.Net框架

答案 4 :(得分:0)

我通过在 web config 中添加以下行来修复

<?xml version="1.0" encoding="utf-8"?>
<!--
  For more information on how to configure your ASP.NET application, please visit
  https://go.microsoft.com/fwlink/?LinkId=301880
  -->
<configuration>
    ..........
    <runtime>
        ...........
        <dependentAssembly>
            <assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
      </dependentAssembly>
    </runtime>