我对netstandard非常陌生,当我想在调试模式下运行引用了netstandard库的.Net Framework(控制台)时遇到了异常。
因此,我后来发现,如果我将nuget中的System.IO.Ports安装到.Net Framework Project中,该异常将消失。但是该库已经安装到netstandard项目上。
所以我非常怀疑,如果我使用另一个.net框架项目中的netstandard项目,是否需要安装netstandard项目所需的所有库。
我必须缺少一些东西,熟悉netstandard的任何人都能给我一些见解。
非常感谢您的投入!
答案 0 :(得分:1)
为托管.Net标准库的.Net Framework项目打开.csproj文件,并在第一个<PropertyGroup>
中添加此行,如下所示,以更改还原样式:
<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
请查看Scott Hanselman的article,了解问题的原因和解决方法。
摘自文章:
“完整”框架项目使用的是较旧的.csproj格式,默认情况下,它们使用package.config来管理依赖项。较新的项目可以将Packages作为一流的参考。因此,我们需要告诉该解决方案中的所有项目,以“ PackageReferences”的身份管理和还原其软件包。
编辑:
此修复程序对我在新项目中的工作非常理想。当我在该新项目中还原软件包之前将其应用于csproj时,nuget将获得正确的引用。
将其应用于现有项目时,将无法使用。 .net标准类库中引用的库不会被nuget拉取,因此,它仍然会引发相同的错误。
要解决此问题,请尝试以下操作:
<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>