首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vista64与Windows7上的vb6和vb .net互操作

Vista64与Windows7上的vb6和vb .net互操作
EN

Stack Overflow用户
提问于 2010-02-19 06:43:45
回答 3查看 934关注 0票数 1

我已经编写了一个可以从vb6成功调用的.net动态链接库。部署到xp、Vista32和Vista64机器已经开始工作。它不能在64位的windows7上工作。我不能在最终用户机器上运行regasm.exe /codebase name.dll,因为他们不是管理员。

目前我的应用部署在"c:\Program Files (x86)\application name“目录下。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-02-19 18:03:02

我使用免费注册的COM来访问.NET互操作程序集。

基本上,首先必须使用mt.exe创建程序集清单,还可以选择使用sn.exe重新签名强名称,如下所示

代码语言:javascript
复制
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}

然后在应用程序清单中引用此程序集清单,如下所示

代码语言:javascript
复制
<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工具自动化清单创建过程,但如果是一次性设置,您可以手动完成。

票数 2
EN

Stack Overflow用户

发布于 2010-02-19 06:47:03

票数 1
EN

Stack Overflow用户

发布于 2010-02-19 06:46:36

部署需要管理员权限。在这种情况下,它应该失败。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2292807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档