Ошибка конструктора Windows Forms в Visual Studio
Я работаю над библиотекой классов.NET Standard в Visual Studio 2019, ориентированной как на.NET Standard 2.1, так и на.NET Framework 4.7.2. Я хочу, чтобы он был совместим с WinForms .NET Framework и WPF .NET Core 3.1. Одна из его зависимостей - Entity Framework 6.4, которая работает только с.NET Standard 2.1 или.NET Framework 4.7.2, поэтому я не могу перейти на.NET Standard 2.0, чтобы быть совместимым с.NET Framework. Таким образом, моя библиотека классов нацелена на оба.
Вот файл.csproj стандартной библиотеки.NET:
<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;
}
}
Я создал приложение WinForms, ориентированное на.NET Framework 4.7.2. и ссылается на стандартную библиотеку.NET. Я создал 2 формы: BaseForm, которая создает экземпляр NetStandardClass, и Form1, производную от BaseForm.
Вот код 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= нейтральный, PublicKeyToken=cc7b13ffcd2ddd51 или одну из их зависимостей. Система не может найти указанный файл.
Что я делаю неправильно?
1 ответ
Шон Скелли решил проблему. Для того, чтобы все работало, файл.csproj должен выглядеть так:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net472;netstandard2.1</TargetFrameworks>
</PropertyGroup>
</Project>
Я также убедился, что приложения и библиотеки.NET Standard и.NET Core совместимы с этим файлом.csproj.