我想向我的.NET应用程序添加免注册COM参考。免注册意味着用户可以在不将COM组件注册到他们的系统的情况下运行该应用程序。.NET中无注册COM互操作的具体步骤(调用无regsvr32复制COM DLL)
我发现了很多关于此主题的文章(例如MSDN,this S/O question等),但没有包含具体步骤。这是我曾尝试和没有工作:
- 生成清单的COM DLL(比如
foo.dll
)使用mt.exe在this answer描述。 - 将
foo.dll
和foo.dll.manifest
作为“Build Action”=“Content”和“Copy to Output Directory”=“始终复制”添加到我的应用程序中。 - 添加对
interop.foo.dll
的引用,其随附foo.dll
。 添加应用程序清单文件与本节:
<dependency> <dependentAssembly> <assemblyIdentity type="win32" name="foo" /> </dependentAssembly> </dependency>
编译和运行。
有错误提示应用程序配置不正确。在<assemblyIdentity>
尝试不同的值,但没有运气。
有人可以分享经验吗?谢谢。
难道你不是说你想要做*没有注册? – Arafangion
@Arafangion我希望用户使用没有COM注册的应用程序。该解决方案需要在开发机器上注册,这是可以接受的。 –
哇!我希望几年前我找到了这个答案。我一直在遵循的所有其他指南都需要更多的手动操作! –