我刚刚开始工作的c#,并与一些代码样本,我得到了一些论坛摆弄。这段代码使用了一个命名空间using system.windows.forms,我得到了一个错误:命名空间system.windows中不存在窗体。此外,我得到了一些与senddown和sendup的未定义函数有关的错误,我相信这些函数位于Forms名称空间中。我使用的是visual studio 10(带有.net frame work 4. 0)。知道如何修复这个错误吗?
using system.windows.forms
senddown
sendup
Forms
htrmnn0y1#
在解决方案树中展开项目,右键单击References,Add Reference,在Framework选项卡上选择System.Windows.Forms。有时需要添加对某些非默认程序集的引用。
References
Add Reference
Framework
System.Windows.Forms
来自评论:对于寻找VS 2019+的人:现在添加项目引用是右键单击Solution Explorer中的Dependencies。
Solution Explorer
Dependencies
对于寻找VS代码的人:How do I add assembly references in Visual Studio Code
s4chpxco2#
如果有人在尝试在.NET Core 3+ WPF应用中引用 Windows Forms 组件时遇到此错误(实际上并不罕见),解决方案是进入.csproj文件(在VS2019中双击它)并将其添加到包含目标框架的属性组节点。
.csproj
<PropertyGroup> <TargetFramework>netcoreapp3.0</TargetFramework> <UseWPF>true</UseWPF> <UseWindowsForms>true</UseWindowsForms> </PropertyGroup>
epggiuax3#
如果您正在**.Net Core应用程序中编写Windows窗体**代码,则很可能会遇到此错误:错误CS0234命名空间“System.Windows”中不存在类型或命名空间名称“Forms”(是否缺少程序集引用?)如果您使用的是Sdk样式的项目文件(推荐使用),您的 *.csproj文件应该类似于:
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop"> <PropertyGroup> <TargetFramework>netcoreapp3.1</TargetFramework> <OutputType>WinExe</OutputType> <UseWindowsForms>true</UseWindowsForms> <RootNamespace>MyAppNamespace</RootNamespace> <AssemblyName>MyAppName</AssemblyName> <GenerateAssemblyInfo>false</GenerateAssemblyInfo> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.Windows.Compatibility" Version="3.0.0" /> </ItemGroup> </Project>
请特别注意以下几行:
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop"> <OutputType>WinExe</OutputType> <UseWindowsForms>true</UseWindowsForms> <PackageReference Include="Microsoft.Windows.Compatibility" Version="3.0.0" />
请注意,如果在引用某些WinForms库时使用WPF,则还应添加<UseWPF>true</UseWPF>。提示:自**.NET 5.0**起,Microsoft建议参考SDK Microsoft.Net.Sdk,而不是Microsoft.Net.Sdk.WindowsDesktop。
<UseWPF>true</UseWPF>
Microsoft.Net.Sdk
Microsoft.Net.Sdk.WindowsDesktop
5ssjco0h4#
<TargetFramework> net5.0-windows </TargetFramework>
引用Announcing .NET 5.0:Windows桌面API(包括Windows窗体、WPF和WinRT)仅在以net5.0-windows为目标时可用。您可以指定操作系统版本,如net5.0-windows7或net5.0-windows10.0.17763.0(适用于Windows 2018年10月更新)。如果要使用WinRT API,您需要以Windows 10版本为目标。在您的项目中:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>WinExe</OutputType> <TargetFramework>net5.0-windows</TargetFramework> <UseWindowsForms>true</UseWindowsForms> </PropertyGroup> </Project>
同样有趣的是:
vhmi4jdf5#
如果您在一个解决方案中有多个项目,并且其中一个项目实际上位于解决方案文件夹中,则可能会遇到此问题。我通过右键单击解决方案树中的此文件夹-〉然后按“从项目中排除”解决了此问题。
f8rj6qna6#
对于一些只需要结构和WindowsForm命名空间中的一些函数的人,你只需要改变项目的旧行为。使DisableWinExeOutputInference为true,则输出类型不会被Visual Studio重写:D。不要忘记将添加窗口设置到TargetFramework
<PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>net5.0-windows</TargetFramework> <DisableWinExeOutputInference>true</DisableWinExeOutputInference> <UseWindowsForms>true</UseWindowsForms> <StartupObject></StartupObject> <ApplicationIcon /> </PropertyGroup>
在这里我找到了他们https://learn.microsoft.com/en-us/dotnet/core/compatibility/sdk/5.0/sdk-and-target-framework-change
nnsrf1az7#
browxy.com Compilation failed: 1 error(s), 0 warnings main.cs(7,24): error CS0234: The type or namespace name `Forms' does not exist in the namespace `System.Windows'. Are you missing `System.Windows.Forms' assembly reference?
7条答案
按热度按时间htrmnn0y1#
在解决方案树中展开项目,右键单击
References
,Add Reference
,在Framework
选项卡上选择System.Windows.Forms
。有时需要添加对某些非默认程序集的引用。
来自评论:对于寻找VS 2019+的人:现在添加项目引用是右键单击
Solution Explorer
中的Dependencies
。对于寻找VS代码的人:How do I add assembly references in Visual Studio Code
s4chpxco2#
如果有人在尝试在.NET Core 3+ WPF应用中引用 Windows Forms 组件时遇到此错误(实际上并不罕见),解决方案是进入
.csproj
文件(在VS2019中双击它)并将其添加到包含目标框架的属性组节点。epggiuax3#
如果您正在**.Net Core应用程序中编写Windows窗体**代码,则很可能会遇到此错误:
错误CS0234命名空间“System.Windows”中不存在类型或命名空间名称“Forms”(是否缺少程序集引用?)
如果您使用的是Sdk样式的项目文件(推荐使用),您的 *.csproj文件应该类似于:
请特别注意以下几行:
请注意,如果在引用某些WinForms库时使用WPF,则还应添加
<UseWPF>true</UseWPF>
。提示:自**.NET 5.0**起,Microsoft建议参考SDK
Microsoft.Net.Sdk
,而不是Microsoft.Net.Sdk.WindowsDesktop
。5ssjco0h4#
净值〉= 5
引用Announcing .NET 5.0:
Windows桌面API(包括Windows窗体、WPF和WinRT)仅在以net5.0-windows为目标时可用。您可以指定操作系统版本,如net5.0-windows7或net5.0-windows10.0.17763.0(适用于Windows 2018年10月更新)。如果要使用WinRT API,您需要以Windows 10版本为目标。
在您的项目中:
同样有趣的是:
vhmi4jdf5#
如果您在一个解决方案中有多个项目,并且其中一个项目实际上位于解决方案文件夹中,则可能会遇到此问题。我通过右键单击解决方案树中的此文件夹-〉然后按“从项目中排除”解决了此问题。
f8rj6qna6#
对于一些只需要结构和WindowsForm命名空间中的一些函数的人,你只需要改变项目的旧行为。
使DisableWinExeOutputInference为true,则输出类型不会被Visual Studio重写:D。
不要忘记将添加窗口设置到TargetFramework
在这里我找到了他们https://learn.microsoft.com/en-us/dotnet/core/compatibility/sdk/5.0/sdk-and-target-framework-change
nnsrf1az7#