C#如何调用不在system32文件夹下的c.dll

mathieuxiao 2014-04-03 04:31:11
用C#写了一个程序,最后创建安装程序进行了打包。程序中调用了C编写 的dll,开发时将这些dll都放到了system32这个路径下。但是在客户环境安装时,客户提出不想手动将这些dll复制到客户环境的system32文件夹,同时也希望卸载时能够完全卸载,不会有所遗留。

想问问除了使用 [DllImport("***.dll")] 这种方式调用system32下的c.dll外,还有没有什么方法可以调用其他位置的c.dll,比如安装路径下的c.dll?

帮顶就给分,谢谢
...全文
378 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
1.Path环境变量中的目录 2.system32 3.应用程序当前目录 4.assemblyBinding配置节指定,单个程序集可用dependAssembly <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="ICSharpCode.SharpZipLib" culture="neutral" publicKeyToken="1b03e6acf1164f73" /> <codeBase version="0.86.0.518" href="子目录相对路径\ICSharpCode.SharpZipLib.dll" /> </dependentAssembly> </assemblyBinding> </runtime> 多个dll,可以放到一个子目录中,然后用probing:privatepath指定搜索路径 <configuration> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <probing privatePath="bin;bin2\subbin;bin3"/> </assemblyBinding> </runtime> </configuration> http://msdn.microsoft.com/zh-cn/library/823z9h8w(v=vs.80).aspx
Tucker_blog 2014-12-24
  • 打赏
  • 举报
回复
楼主的问题解决了吗? 求科普
吉尔伽美什 2014-04-04
  • 打赏
  • 举报
回复
引用 6 楼 u014247189 的回复:
你调用的时候不是要写路径的嘛,用相对路径就行了,打包的时候dll是 和exe在一起的
+1
mjp1234airen4385 2014-04-04
  • 打赏
  • 举报
回复
lz从哪里听来的dll必须要放在system32下的?
宝_爸 2014-04-04
  • 打赏
  • 举报
回复
就是Exe所在的路径
宝_爸 2014-04-04
  • 打赏
  • 举报
回复
当前路径中也可以,对于EXE来讲,就是Exe所在的问题。 Web的话有点麻烦,当前路径是windows下的什么。 [DllImport("***.dll")] 直接文件名,不用谢路径。
煜宸0088 2014-04-03
  • 打赏
  • 举报
回复
你调用的时候不是要写路径的嘛,用相对路径就行了,打包的时候dll是 和exe在一起的
huoyanshan 2014-04-03
  • 打赏
  • 举报
回复
不用管客户安装到哪个目录了。。打包时把那些Dll都打到exe同名目录下,安装后不一样能运行嘛。
本拉灯 2014-04-03
  • 打赏
  • 举报
回复
引用 2 楼 mathieuxiao 的回复:
因为我也不知道安装时会到哪个目录啊,所以“D:\\XXX\XXX”写了也是没有意义的 你的意思就是直接写 [DllImport("***.dll")] ,不用做任何更改了?
不用呀,C#模认就是先找同一目录下的。找不到再找System下的 然后再找 Windows下的
mathieuxiao 2014-04-03
  • 打赏
  • 举报
回复
因为我也不知道安装时会到哪个目录啊,所以“D:\\XXX\XXX”写了也是没有意义的 你的意思就是直接写 [DllImport("***.dll")] ,不用做任何更改了?
本拉灯 2014-04-03
  • 打赏
  • 举报
回复
默认就是安装目录下的 DLL 其次才是 System下的 你要指定就在 [DllImport("D:\\XXX\XXX***.dll")]

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧