无法将程序集引用添加到控制台应用程序

时间:2020-09-02 09:51:54

标签: c# visual-studio visual-studio-2019

当前,我无法在Visual Studio 2019中向我的C#项目添加程序集引用。

我不知道这是Visual Studio本身的错误还是我的错。

目前,我的“参考”页面如下所示: Add Project reference

如果尝试添加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窗体的引用。

2 个答案:

答案 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>