Ошибка конструктора 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.

Другие вопросы по тегам