我正在Visual Studio 2019中开发一个面向.NET Standard 2.1和.NET Framework 4.7.2的.NET Standard类库。我希望它与WinForms.NET Framework和WPF.NET Core 3.1兼容。它的依赖项之一是Entity Framework 6.4,它只能与.NET Standard 2.1或.NET Framework 4.7.2-so我不能为了与.NET Framework兼容而降级到.NET Standard 2.0。因此,我的类库同时针对这两者。
这是.NET标准库的.csproj文件:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netstandard2.1;net472</TargetFrameworks>
</PropertyGroup>
</Project>
在.NET标准库中,我创建了一个名为"NetStandardClass"的类。这是代码:
public class NetStandardClass
{
private string _member;
public NetStandardClass(string member)
{
_member = member;
}
}
我已经创建了一个针对.NET Framework 4.7.2的WinForms应用程序。并引用.NET标准库。我创建了两个表单:创建NetStandardClass实例的BaseForm和从BaseForm派生的Form1。
这是BaseForm的代码:
public partial class BaseForm : Form
{
public BaseForm()
{
InitializeComponent();
var netStandardObject = new NetStandardClass("Test");
}
}
这是Form1的代码:
public partial class Form1 : BaseForm
{
public Form1()
{
InitializeComponent();
}
}
一切都编译并运行,没有任何错误。Form1显示没有错误。我可以毫无问题地将BaseForm加载到设计器中。
然而,当我试图将Form1加载到设计器中时,我得到了以下错误:
无法加载文件或程序集"netstandard,Version=2.1.0.0,Culture=neutral,PublicKeyToken=cc7b13ffcd2ddd51"或其依赖项之一。系统找不到指定的文件。
我做错了什么?
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net472;netstandard2.1</TargetFrameworks>
</PropertyGroup>
</Project>
我还验证了.NET Standard和.NET Core应用程序和库是否与该.csproj文件兼容。