C#:我有一个System.Data.DB2.dll文件,是这家封装的一个程序中用到DB2操作的类我发布程序的时候,不想将这个dll放在和exe同目录下,我想将这个dll同系统其他dll(如System.dll、System.Drawing.dll等)一样,就是不显示在程序安装目录中,请问有什么方法可以作到?我的几个想法:1.是不是将System.Data.DB2.dll复制到C:\WINDOWS\system32目录下就可以了?2.是不是将System.Data.DB2.dll复制到C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727目录下(即和System.dll同目录下) 就可以了?3.是不是将System.Data.DB2.dll放到C:\WINDOWS\assembly目录下就行了?你看System.dll、System.Drawing.dll它们都在 那。但好象C:\WINDOWS\assembly目录不是随便复制就能将文件放进去的吧?具体该怎么做呢?===========================================================最后问下:当我们在程序中引用using System.Drawing;的时候,它会去哪里找这个System.Drawing.dll,是我上面提到目录中的哪个? 不要见笑,小弟基础知识比较薄弱。 谢谢
然后用regsvr32命令注册dll参考这里 http://baike.baidu.com/view/40743.htm?fr=ala0
我程序里不是通过[DllImport]来引用的 是同过using,和using System.Drawing一样
你自己看看C# 上的System...什么的,还不是要添加进去,才可以引用
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
不知所云
上面哪一个没有在引用文件里呆着
http://www.cnblogs.com/skywind/archive/2007/03/28/691284.html
一、你必须给你的dll文件添加密钥,项目属性中可以设置,具体方法自己网上找。
二、使用gacutil.exe /i来安装它,gacutil.exe在你的VS安装目录下有,启动vs的命令行就自动添加环境变量了。至于使用,自然还是需要添加引用啦,只不过引用时要找全局dll,也就是“.NET选项卡”
这个你也知道,那你做这些多是无用功
这个简单,只要将你VS安装目录下的gacutil.exe和gacutil.exe.config两个文件复制到用户那里就可以执行了。使用Windows自带的搜索功能找下文件的位置吧。
应该这样操作,在安装文件下再建立一个子文件夹专门用来存放自己写的DLL文件,这样看起来也清爽
假设安装文件夹是D:\MyProgram,主程序及一些其他可执行文件放在该文件夹下,
然后再建立一个子文件夹,假设为d:\MyProgram\Dlls
将各种自己写的及第三方的DLL放到该子文件夹中,
那么怎以能使程序搜索到这些DLL文件呢
在配置文件中增加一节,如下
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="bin;bin2\subbin;bin3"/>
</assemblyBinding>
</runtime>
</configuration>
可以在MSDN中索引<probing>其中"bin;bin2\subbin;bin3"就是你指定的搜索路径,可以有多个,用分号分隔,
要求是这些文件夹必须是启动文件(主程序文件)所以文件夹的子文件夹。