Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.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
C# 通过nuget将dll添加到framework 4.6.2项目会导致使用dotnetcore dll_C# - Fatal编程技术网

C# 通过nuget将dll添加到framework 4.6.2项目会导致使用dotnetcore dll

C# 通过nuget将dll添加到framework 4.6.2项目会导致使用dotnetcore dll,c#,C#,我有一个C#解决方案,其中包含一个针对.NETFramework4和Windows8(配置文件net40+win8)的项目 我有另一个以.NETCore为目标的项目。的project.json文件包含: { "version": "1.0.0-*", "dependencies": { "NETStandard.Library": "1.6.0" }, "frameworks": { "netstandard1.6": { "imports": "dn

我有一个C#解决方案,其中包含一个针对.NETFramework4和Windows8(配置文件net40+win8)的项目

我有另一个以.NETCore为目标的项目。的
project.json
文件包含:

{
  "version": "1.0.0-*",
  "dependencies": {
    "NETStandard.Library": "1.6.0"
  },
  "frameworks": {
    "netstandard1.6": {
      "imports": "dnxcore50"
    }
  },
  "buildOptions": {
    "define": [ "CORE" ]
  }
}
<TargetFrameworkIdentifier>.NETCoreApp</TargetFrameworkIdentifier>
<TargetFrameworkVersion>v1.0</TargetFrameworkVersion>
而.xproj文件包含:

{
  "version": "1.0.0-*",
  "dependencies": {
    "NETStandard.Library": "1.6.0"
  },
  "frameworks": {
    "netstandard1.6": {
      "imports": "dnxcore50"
    }
  },
  "buildOptions": {
    "define": [ "CORE" ]
  }
}
<TargetFrameworkIdentifier>.NETCoreApp</TargetFrameworkIdentifier>
<TargetFrameworkVersion>v1.0</TargetFrameworkVersion>
因此也包括dotnetcore dll

然后,如果我使用NuGet Package Explorer检查生成的
.nupkg
文件,我的结构如下:

lib
    dotnet (.NETPlatform,Version=v5.0)
        SuccincT.Core.deps.json
        SuccincT.Core.dll
        SuccincT.Core.pdb
    portable40-net40+win8
        SuccincT.dll
因此(在我未经培训的眼中),这一切看起来都很好(我认为
.NETPlatform,Version=v5.0
,尽管已被弃用,但这是因为PackageExplorer应用程序比较旧,不理解较新的.NET标准符号)

然而,我随后创建了另一个针对.NET Framework 4.6.2的项目,并通过
.nupkg
文件添加了对简洁的引用。当我查看引用时,会出现succert.Core.dll文件。所以它采用了dotnetcore版本。更奇怪的是,它编译得很好,但是在运行这个新项目时,由于无法找到
System.Runtime
v4.1而导致错误

有人知道这里发生了什么吗?为什么它选择了错误的dll?即使在框架项目中使用了针对dotnetcore的dll,它是如何编译的?最重要的是,我该如何解决这个问题