Ссылочная проблема с диаграммами Microsoft в ASP. Net Core WebAPI - PullRequest
0 голосов
/ 20 января 2020

Я пытаюсь перенести C#. net framework MVC API в. net Core 3 MVC API проект, который генерирует PNG-диаграммы с System.Windows.Forms.DataVisualisation.Charting.Chart

I используйте этот пакет NuGet , и все выглядит нормально, за исключением того, что для метода SaveImage требуется ссылка на класс System. Windows .Forms.Control, который не является частью моего проекта, а проект является. net Базовый проект веб-API, на него невозможно ссылаться.

Chart chart = new Chart
{
    BackColor = Color.Transparent,
    Size = new Size(800, 800)
};
ChartArea chartArea = new ChartArea() { BackColor = chart.BackColor };
chart.ChartAreas.Add(chartArea);

// Building of chart here

using (MemoryStream ms = new MemoryStream())
{
    chart.SaveImage(ms, ChartImageFormat.Png); // This method does not compile because it requires System.Windows.Forms.Control
    return ms.ToArray();
}

У меня есть эта ошибка:

Ошибка CS0012 Тип "Управление" определен в сборке, которая не ссылается Вы должны добавить ссылку на сборку 'System. Windows .Forms, версия = 4.0.0.0, Culture = нейтральная, PublicKeyToken = b77a5c561934e089'.

Мой проект <Project Sdk="Microsoft.NET.Sdk.Web">, и поэтому это невозможно для ссылки на пакет Microsoft.WindowsDesktop.App.WindowsForms.

Есть ли обходной путь?

1 Ответ

0 голосов
/ 20 января 2020

Я нашел решение. Просто добавив следующую группу в файл .csproj, и теперь он компилируется:

  <ItemGroup>
    <FrameworkReference Include="Microsoft.WindowsDesktop.App.WindowsForms" />
  </ItemGroup>
...