43得票3回答
当使用ComVisible(false)时,指定一个Guid是否有意义?

当你在Visual Studio中创建一个新的C#项目时,生成的AssemblyInfo.cs文件包括一个指定程序集GUID的属性。该属性上面的注释指出,如果“此项目暴露给COM”,则会使用它。 我的程序集中没有需要对COM可见的类型,因此我使用了[assembly: ComVisible(...

37得票2回答
[ComVisible]默认值和公共类COM暴露有什么关系?

MSDN有一篇关于 [ComVisible] 属性的文章。当一个类型设置了[ComVisible(true)]时,我不太明白会发生什么。 MSDN说: 默认值为 true,表示托管类型对 COM 可见。此属性不需要使托管程序集和类型公开可见,它们默认对 COM 可见。只有公开的类型可...

22得票1回答
RegAsm - 什么情况下需要使用 /codebase 选项?

我有一个用C#编写的COM可见DLL,想在VB6应用程序中使用它。我有两个主要用例需要使用该DLL,并想知道何时适用于/codebase选项,以及何时最好在GAC中注册。 用例: DLL将加载到另一个开发人员的PC上,并需要在VB6 IDE下的 Project > Refere...

12得票3回答
警告MSB3391: <DLL>不包含任何可以用于取消注册COM互操作的类型

我使用VS2005制作了一个简单的C# DLL(它是一个更大项目的一部分)。我需要通过VBA代码在Excel中使用该DLL,因此我正在使用程序集上的COM互操作。我正在尝试使构建过程自动生成必要的TLB文件,以便我不需要在每次构建后去命令行并使用regasm。 我的问题是,尽管DLL编译和构...

9得票1回答
能否使用.NET泛型类实现COM接口?

我有以下接口,我尝试使其COM可见。当我尝试生成类型库时,它不喜欢我的实现类从泛型类派生。 是否可以将泛型类用作COM实现类? (我知道我可以编写非泛型包装器并将其导出到COM,但这会增加另一层,我宁愿不这样做。) [ComVisible(true)] public interface I...

8得票1回答
能否在不需要VS提升权限的情况下构建具有COM可见类型的.NET DLL?

在项目中,有一个带有ComVisible(true)标记的类型的程序集。 在构建时(非提升),VS尝试注册该DLL并失败: 无法注册程序集“\path\to\foo.dll”-拒绝访问。 请确保您以管理员身份运行应用程序。 拒绝访问注册表键“HKEY_CLASSES_ROOT \ CLSI...

7得票1回答
C++/CLI 中的 ComVisible

我正在将C++转换为C++/CLI,并希望将一些托管类公开为COM对象。在C#中,设置[ComVisible]和继承自接口(也是ComVisible)很容易完成任务。但是作为C++/CLI构建的C++项目不会导出DllRegisterServer。 这里有一个示例项目(从VS 2008中的C...