当前,我无法在Visual Studio 2019中向我的C#项目添加程序集引用。
我不知道这是Visual Studio本身的错误还是我的错。
如果尝试添加COM引用,则会出现以下错误:
Severity Code Description Project File Line Suppression State
Warning MSB3290 Failed to create the wrapper assembly for type library "{215d64d2-031c-33c7-96e3-
61794cd1ee61}". Type library 'System_Windows_Forms' was exported from a CLR assembly and cannot be
re-imported as a CLR assembly. MyProgram C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets 2705
我只想添加对Windows窗体的引用。
答案 0 :(得分:0)
可能是因为您试图引用与要获取COM引用的项目不同的体系结构而构建的COM库。 例如,COM lib可能基于x64构建,而您的项目可能基于x32构建。
或者,请您详细说明您的问题或帮助我重现该问题。
答案 1 :(得分:0)
对类型库的引用将表明您正在添加COM引用。
但是System.Windows.Forms
是.NET程序集,因此您应该从引用管理器的“程序集”列表中选择它(添加引用时显示)。
如果这是一个.NET Core项目,则通过NuGet添加适当的引用(在解决方案资源管理器中项目的上下文菜单中)。但它也需要正确的SDK版本。
从VS New Project创建的全新WinForms项目中复制可能更容易,并查看其中包含的NuGet引用。
更正
对于.NET Core 3.1,您不需要WinForms程序集的任何引用。相反,您需要在.csproj
中进行正确的设置:
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
</PropertyGroup>
</Project>