我在哪里将ImplicitlyExpandDesignTimeFacades设置为false?

Ste*_*uer 5 .net c# json.net visual-studio-2013

我有这里提到的问题.

我收到错误:

已导入具有相同标识的程序集"System.Runtime.Serialization.Primitives,Version = 4.1.1.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a".尝试删除其中一个重复的引用.

问题似乎是Visual Studio 2013,Newtonsoft.JsonSystem.Runtime.Serialization.Primitives之间不兼容.

建议的工作是添加

<ImplicitlyExpandDesignTimeFacades>false</ImplicitlyExpandDesignTimeFacades>
Run Code Online (Sandbox Code Playgroud)

从环顾网络看来,这似乎需要进入.csproj文件,但我不确切知道放在哪里.如果我把它放在根节点下,我会收到错误.有任何想法吗?

JB.*_*ca. 9

您可以将<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>
Run Code Online (Sandbox Code Playgroud)

- 编辑: -

<ImplicitlyExpandDesignTimeFacades>将使用Visual Studio 2013或2015节省您的一天,但2017年不需要它:项目可能无法编译.升级到2017后,请不要忘记删除该项目.

  • 在使用 Visual Studio 2015 引用 netstandard 2.0 nuget 包后,这为我解决了错误“多重程序集”。 (2认同)
  • 这对我有用,但你能解释一下它为什么有效吗? (2认同)

Ste*_*uer 0

我设法通过删除项目并重新创建它(重新添加类并重新导入 NuGet 包)来解决此问题。

我只能猜测,在更新 NuGet 包时,.csproj 文件中出现了问题。

我的一位同事在 Visual Studio 2015 中遇到了类似的问题。他通过在 Visual Studio 2013 中打开解决方案解决了该问题。