我的问题是here。
我收到错误:
具有相同身份的程序集 ' System.Runtime.Serialization.Primitives,Version = 4.1.1.0, Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'已经过了 进口。尝试删除其中一个重复的引用。
问题似乎是 Visual Studio 2013 , Newtonsoft.Json 和 System.Runtime.Serialization.Primitives 之间不兼容。
建议的解决方法是添加
<ImplicitlyExpandDesignTimeFacades>false</ImplicitlyExpandDesignTimeFacades>
从浏览网页看来,这似乎需要进入 .csproj 文件,但我不知道确切的位置。如果我把它放在根节点下,我会收到错误。有什么想法吗?
答案 0 :(得分:8)
您可以将<ImplicitlyExpandDesignTimeFacades>
标记放在项目文件的顶部,位于第一个<PropertyGroup>
。
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{75678902-8224-4222-BB33-756784B2FA29}</ProjectGuid>
<OutputType>Library</OutputType>
<RootNamespace>FooBar</RootNamespace>
<AssemblyName>FooBar</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
...
<ImplicitlyExpandDesignTimeFacades>false</ImplicitlyExpandDesignTimeFacades>
</PropertyGroup>
- 修改: -
<ImplicitlyExpandDesignTimeFacades>
将使用Visual Studio 2013或2015节省您的一天,但2017年不需要它:项目可能无法编译。升级到2017年后,请不要忘记删除该项目。
答案 1 :(得分:0)
我设法通过删除项目并重新创建它来重新解决此问题(重新添加类并重新导入NuGet包)。
我只能猜测,在更新NuGet包时,.csproj文件出错了。
我的一位同事在Visual Studio 2015中遇到了类似的问题。他通过在Visual Studio 2013中打开解决方案解决了这个问题。