我已经编写了一个可以从vb6成功调用的.net动态链接库。部署到xp、Vista32和Vista64机器已经开始工作。它不能在64位的windows7上工作。我不能在最终用户机器上运行regasm.exe /codebase name.dll,因为他们不是管理员。
目前我的应用部署在"c:\Program Files (x86)\application name“目录下。
发布于 2010-02-19 18:03:02
我使用免费注册的COM来访问.NET互操作程序集。
基本上,首先必须使用mt.exe创建程序集清单,还可以选择使用sn.exe重新签名强名称,如下所示
mt.exe -managedassemblyname:{Your_DLL} -nodependency -out:{Your_DLL}.manifest
mt.exe -manifest {Your_DLL}.manifest -outputresource:%{Your_DLL};1
sn -Ra {Your_DLL} {Your_PFX}然后在应用程序清单中引用此程序集清单,如下所示
<dependency>
<dependentAssembly>
<assemblyIdentity name="{Your_DLL}" version="1.0.0.0" publicKeyToken="hash_here" processorArchitecture="x86" />
</dependentAssembly>
</dependency>其中assemblyIdentity与{Your_DLL}的程序集清单中的assemblyIdentity匹配。
在客户端计算机上,VB6可执行文件和.NET dll必须位于同一文件夹中。不需要regasm和GAC注册。
我正在使用UMMM工具自动化清单创建过程,但如果是一次性设置,您可以手动完成。
发布于 2010-02-19 06:47:03
发布于 2010-02-19 06:46:36
部署需要管理员权限。在这种情况下,它应该失败。
https://stackoverflow.com/questions/2292807
复制相似问题