我有一个目前用.NET 4.0构建并部署到Nuget的库。这个库没有太多的依赖项,在.NET标准和核心项目中似乎也可以正常工作。
手动添加到标准或核心项目时,库正在引发兼容性错误。已通过修改.csproj文件以删除不需要的引用来解决此问题。现在看起来是这样。
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="Microsoft.CSharp" />
</ItemGroup>
这个解决方案似乎使库的功能正确,既核心又标准。当手动将库添加到标准或核心项目时,兼容性警告现在已消失,即使库仍使用.NET 4.0构建。但是,在发布到Nuget,然后通过Nuget下载库之后,我仍然收到这个警告。
“警告****包'*****'已使用'.NETFramework,Version=v4.6.1'而不是项目目标框架'.NETCoreApp,Version=v2.0'还原。”。此包可能与您的项目不完全兼容。”
经过许多烦恼和调查,我意识到这个库似乎仍然在标准和核心项目中工作,但我不确定它是否使用.NET4.6.1来运行基于此警告的库。
所以我的问题是,如何正确地将包部署到Nuget以正确地针对多个运行时?我是否需要在每个运行时生成多个项目?如果是这样的话,我可以把它打包成一个包吗?还是每个运行时都需要一个不同的版本?不知道这里的最佳做法是什么。