C# 通过nuget将dll添加到framework 4.6.2项目会导致使用dotnetcore dll
我有一个C#解决方案,其中包含一个针对.NETFramework4和Windows8(配置文件net40+win8)的项目 我有另一个以.NETCore为目标的项目。的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
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,它是如何编译的?最重要的是,我该如何解决这个问题