C#中的“注册COM互操作”选项已禁用。

10
我正在尝试将我的C#代码创建为DLL文件。我找到了一些链接,指导我如何创建DLL文件并按照我所需的方式在Excel中使用它。其中一个步骤是在项目的“生成”选项卡中勾选“注册COM互操作”。不幸的是,这个复选框始终被禁用!有人知道如何启用它吗?我正在使用VS 2010。

1
如果你无法从IDE中找到如何做到这一点,你可以直接调用regasm.exe。 - bmm6o
当我创建类库(.NET Standard)时,“注册COM互操作”复选框被禁用,然后我创建了类库(.NET Framework)和.NET Framework 4.5,复选框“注册COM互操作”被启用。 - Roberto Carlos Chavez Espinosa
3个回答

10
首先验证您的输出类型,它必须是类库而不是控制台应用程序。
其次,如果问题仍然存在,请打开您的 csproj 文件并修改您的节点。
<RegisterForComInterop>true</RegisterForComInterop>

Screenshot


我尝试过,但无法知道“注册COM互操作”XML节点的名称,因为它根本不存在于csproj的XML文件中。 - Emo
1
我认为在添加属性之前,您必须首先修改输出类型。您可以在“应用程序”部分找到输出类型,在构建之前进行修改。 - Aghilas Yakoub
@AghilasYakoub 如果我是你,我会将这句话加粗: 它必须是类库而不是控制台应用程序。 - ebrahim.mr

4
我遇到了同样的问题,使用新版的Visual Studio 2019。创建类库的第一个选择是Class Library .Net framework,但这个选项无法工作。你需要往下几行找到Class Library (.NET framework) C# Windows library。只要在项目属性中激活“在构建时将程序集副本显示出来并为Com互操作注册”选项,它就能正常工作。请注意不要忘记这一步。

-1

我遇到了同样的问题。

问题出在我创建项目时选择了针对 .Net Framework 的类库选项。

当我创建一个不针对 .Net Framework 的新项目时,该选项又变成可用状态了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接