我对 netstandard 非常陌生,当我想运行引用 netstandard 库的 .Net Framework(控制台)调试模式时,我刚刚遇到异常。
所以我后来发现,如果我将 nuget 中的 System.IO.Ports 安装到 .Net Framework 项目上,异常就会消失。但这个库已经安装到 netstandard 项目中了。
因此,我非常怀疑如果我使用另一个 .net 框架项目中的网络标准项目,是否需要安装网络标准项目所需的所有库。
我一定错过了一些东西,任何熟悉 netstandard 的人都可以给我一些关于它的见解吗?
非常感谢您的投入!
打开托管 .Net 标准库的 .Net Framework 项目的 .csproj 文件,并在第一个文件中添加此行<PropertyGroup>
像这样改变恢复风格:
<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
看看这个article https://www.hanselman.com/blog/ReferencingNETStandardAssembliesFromBothNETCoreAndNETFramework.aspxScott Hanselman 介绍了问题的原因和修复方法。
来自文章:
“完整”框架项目使用较旧的 .csproj 格式,默认情况下,它们使用 package.config 来管理依赖项。较新的项目可以将包作为一流引用来引用。因此,我们需要告诉此解决方案中的所有项目将其包管理和恢复为“PackageReferences”。
EDIT:
这个修复对于我的新项目来说非常有效。当我在恢复新项目中的包之前将其应用到 csproj 时,nuget 会获得正确的引用。
当将此应用到现有项目时,它不起作用。 .net 标准类库中引用的库不是由 nuget 拉取的,因此,它仍然会抛出相同的错误。
要修复它,请尝试以下操作:
- 打开 csproj.你会注意到你的图书馆看起来像这样
<Reference Include="yournetstandardlibrary, Version=1.0.1.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\yournetstandardlibrary\lib\netstandard2.0\.dll</HintPath>
</Reference>
- 删除该引用
- 添加此参考
<ItemGroup>
<PackageReference Include="yournetstandardlibrary">
<Version>1.0.1</Version>
</PackageReference>
</ItemGroup>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)