我正在迁移一个.NET Framework类库,它现在需要与.NET Framework和.NET Core应用程序兼容;该库依赖于System.Windows.Forms
命名空间。
为了实现这种兼容性,我决定将.NET Standard 2.0作为我的类库的目标,因为它可以被.NET Framework和.NET Core项目使用。
但是,我遇到了以下错误的问题:
错误CS 0234类型或命名空间名称“Forms”在命名空间“System.Windows”中不存在(是否缺少程序集引用?)
以下是我的课程和项目设置:
类别:
using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace NetUtils
{
public class NDUtils
{
public void ShowConnectDialog(Form ParentForm)
{
zDisplayDialog(ParentForm, 1);
}
public void ShowDisconnectDialog(Form ParentForm)
{
zDisplayDialog(ParentForm, 2);
}
private void zDisplayDialog(Form poParentForm, int piDialog)
{
int num = -1;
int phWnd = 0;
if (poParentForm != null)
{
phWnd = poParentForm.Handle.ToInt32();
}
switch (piDialog)
{
case 1:
num = WNetConnectionDialog(phWnd, 1);
break;
case 2:
num = WNetDisconnectDialog(phWnd, 1);
break;
}
if (num > 0)
{
throw new Win32Exception(num);
}
poParentForm.BringToFront();
}
[DllImport("mpr.dll")]
private static extern int WNetConnectionDialog(int phWnd, int piType);
[DllImport("mpr.dll")]
private static extern int WNetDisconnectDialog(int phWnd, int piType);
}
}
字符串
Csproj:
<!-- also tried Microsoft.NET.Sdk to no avail -->
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
</PropertyGroup>
</Project>
型
我知道System.Windows.Forms
不是.NET Standard 2.0的一部分,但我需要在我的库中使用它。如何解决此问题,同时保持与.NET Framework和.NET Core的兼容性?
1条答案
按热度按时间sauutmhj1#
我会远离.NET标准和多目标.NET框架和.NET核心。