找回密码
 立即注册

QQ登录

只需一步,快速开始

xiwu

中级会员

97

主题

445

帖子

910

积分

中级会员

积分
910

活字格认证

xiwu
中级会员   /  发表于:2011-8-3 19:38  /   查看:6458  /  回复:7
用spread 做的功能,在CAD下运行,目前情况是要将所引用的spread相关dll文件放在CAD目录下。如何设置才能让spread的.dll放在任意位置都行运行程序。

7 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2011-8-4 09:27:00
沙发
是可以将你二次开发之后的DLL单独放置的,拿Czdm工程为例,我将Czdm编译之后的Debug目录拷贝到C:\Program Files\Czdm,然后在AutoCAD中执行NetLoad命令,加载Czdm.DLL,就可以执行Czdm工程。
需要注意的是Czdm.DLL需要和Spread相关的DLL放在同一目录下。
回复 使用道具 举报
xiwu
中级会员   /  发表于:2011-8-4 17:02:00
板凳
你那能运行可能是因为你已经安装了spread的原因 ,到别的没有安装的电脑上就不能用了
回复 使用道具 举报
gw0506
超级版主   /  发表于:2011-8-4 18:43:00
地板

回复 3# xiwu 的帖子

是这样的,.NET程序运行时通常会检查一下几个地方有没有需要的dll。
1. GAC。安装Spread的机器,都会把Spread相关dll放到GAC中。
2. 与可执行文件同级的目录。也就是说,你的exe程序要和dll在同一个文件夹内。

所以,如果你想随便放置dll,让exe程序都能正常运行。只能将经过正式版license激活过的spread相关dll注册到GAC中。

关于如何将dll注册到GAC中,你可以去微软网站寻求帮助。有命令行工具可以实现这一需求。
回复 使用道具 举报
xiwu
中级会员   /  发表于:2011-8-30 19:13:00
5#
经过一段时间的网上学习,明白了GAC是个什么东西了,但是网上说的一般有两种办法:1是使用工具guitl.exe(名字好像写错了),2、是在程序做安装程序时操作,   但我的情况似乎两种都不合适,1,如果是使用工具,哪还不如直接复制 dll到CAD安装目录下,2,我VS 编译后是dll文件,安装程序是另外做的(不是VS,因为要涉及到修改CAD的一些环境).
请版主明示
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2011-9-1 08:57:00
6#

回复 5# xiwu 的帖子

谈一下我的看法,你的项目算是插件开发吧,同时不涉及对外发布的问题,将DLL拷贝到CAD目录下的部署方式还是比较简单的(手动拷贝或者通过bat文件拷贝都可行),如果觉得部署到GAC中会更好,我们也可以提供相应办法。
回复 使用道具 举报
xiwu
中级会员   /  发表于:2011-9-1 10:41:00
7#
我希望用部署到GAC的办法,
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2011-9-2 13:38:00
8#

回复 7# xiwu 的帖子

你好,将DLL部署到GAC的方法可以参考MSDN中的以下文档:

如何在 Visual C# .NET 中将程序集安装到全局程序集缓存中http://support.microsoft.com/kb/815808/zh-cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部