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

问题描述

用C#写了一个程序,最后创建安装程序进行了打包。程序中调用了C编写的dll,开发时将这些dll都放到了system32这个路径下。但是在客户环境安装时,客户提出不想手动将这些dll复制到客户环境的system32文件夹,同时也希望卸载时能够完全卸载,不会有所遗留。想问问除了使用[DllImport("***.dll")]这种方式调用system32下的c.dll外,还有没有什么方法可以调用其他位置的c.dll,比如安装路径下的c.dll?帮顶就给分,谢谢

解决方案

解决方案二:
默认就是安装目录下的DLL其次才是System下的你要指定就在[DllImport("D:\XXXXXX***.dll")]
解决方案三:
因为我也不知道安装时会到哪个目录啊,所以“D:\XXXXXX”写了也是没有意义的你的意思就是直接写[DllImport("***.dll")],不用做任何更改了?
解决方案四:
引用2楼mathieuxiao的回复:

因为我也不知道安装时会到哪个目录啊,所以“D:\XXXXXX”写了也是没有意义的你的意思就是直接写[DllImport("***.dll")],不用做任何更改了?

不用呀,C#模认就是先找同一目录下的。找不到再找System下的然后再找Windows下的
解决方案五:

解决方案六:
不用管客户安装到哪个目录了。。打包时把那些Dll都打到exe同名目录下,安装后不一样能运行嘛。
解决方案七:
你调用的时候不是要写路径的嘛,用相对路径就行了,打包的时候dll是和exe在一起的
解决方案八:
当前路径中也可以,对于EXE来讲,就是Exe所在的问题。Web的话有点麻烦,当前路径是windows下的什么。[DllImport("***.dll")]直接文件名,不用谢路径。
解决方案九:
就是Exe所在的路径。
解决方案十:
lz从哪里听来的dll必须要放在system32下的?
解决方案十一:
引用6楼u014247189的回复:

你调用的时候不是要写路径的嘛,用相对路径就行了,打包的时候dll是和exe在一起的

+1
解决方案十二:
楼主的问题解决了吗?求科普
解决方案十三:
1.Path环境变量中的目录2.system323.应用程序当前目录4.assemblyBinding配置节指定,单个程序集可用dependAssembly<runtime><assemblyBindingxmlns="urn:schemas-microsoft-com:asm.v1"><dependentAssembly><assemblyIdentityname="ICSharpCode.SharpZipLib"culture="neutral"publicKeyToken="1b03e6acf1164f73"/><codeBaseversion="0.86.0.518"href="子目录相对路径ICSharpCode.SharpZipLib.dll"/></dependentAssembly></assemblyBinding></runtime>多个dll,可以放到一个子目录中,然后用probing:privatepath指定搜索路径<configuration><runtime><assemblyBindingxmlns="urn:schemas-microsoft-com:asm.v1"><probingprivatePath="bin;bin2subbin;bin3"/></assemblyBinding></runtime></configuration>

时间: 2024-08-01 19:15:56

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

t4模板 ef-code first 怎么使用T4模板获得一个文件夹下的类名称

问题描述 code first 怎么使用T4模板获得一个文件夹下的类名称 如何获取一个文件夹下的类名称,本来想用反射把类名称发射出来,但是在T4中命名引用了但一直提示没引用 解决方案 什么叫文件夹下的类名称,你说的是命名空间,还是你文件夹下有很多dll,然后你要遍历所有dll中的所有类? 后者需要用Assembly.LoadFrom先加载dll,再用Assembly.GetTypes反射.

点击button按钮调用控制台程序 文件在同一文件夹下

问题描述 我写了一个Winform的窗口里面就一个按钮我想点击这个按钮来调用控制台的EXE程序文件Winform的程序与控制台的程序在同一个目录下非不同目录我是一个新手最好给我代码也就是如果我把2个文件从不同的盘符之间移动一下不用修改WinformButton里面查询代码的!!! 解决方案 解决方案二:点击启动文件里面的Button按钮来调用这个文件夹下的QQtest.exe无论Debug文件夹在什么盘符下都可以调用我Button里面应该怎么写解决方案三:stringpath=string.Fo

复制文件到c盘windows文件夹下的system32的批处理写法_DOS/BAT

现在想从"C:\Program Files\常用绿色软件\soft\"将'FinalData.exe'.'OfficeDiary.exe'.'DisplayX.exe'这三个程序拷贝到'C:\WINDOWS\system32'并覆盖原有的三个,应该怎么编写??? 问题1:批处理的编写支持长文件夹和长文件名吗? 问题2:批处理的编写支持中文文件夹吗? 问题3:覆盖原有文件会出现提示吗?如果会,怎么让它不提示直接覆盖了? @echo off for %%a in (FinalData Of

遍历指定文件夹下所有的xml文件并动态生成HTML页面!

xml|遍历|动态|生成html|页面 ++++++++++++++++++++++++++++功能:遍历指定文件夹下所有的xml文件并动态生成HTML页面!++++++++++++++++++++++++++++using System;using System.Collections;using System.ComponentModel;using System.Data;using System.Drawing;using System.Web;using System.Web.Sess

asp.net 获取指定文件夹下所有子目录及文件(树形)_实用技巧

#region 获取指定文件夹下所有子目录及文件(树形)         /****************************************          * 函数名称:GetFoldAll(string Path)          * 功能说明:获取指定文件夹下所有子目录及文件(树形)          * 参    数:Path:详细路径          * 调用示列:          *           string strDirlist = Server.M

vs里dll如何放到文件夹下

问题描述 vs里dll如何放到文件夹下引用后我设复制本地false,但还是不行 解决方案 解决方案二:项目属性>生成事件>后期生成事件copy/Y/B$(TargetPath)你的目录解决方案三: 解决方案四:你漏掉了copy$(TargetPath)后面的空格$(TargetPath)这个是指生成出来的dll的位置你的目录是指你想把dll复制到哪里,不是让你加在$(TargetPath)后面解决方案五:现在的年轻人连copy命令都没听说过了吗....解决方案六:还有你要复制的是ClassLi

C# 系统应用之ListView控件 (二).加载选中节点文件夹下文件信息

在项目中的前面一篇文章"C# 系统应用之TreeView控件 (一).显示树状磁盘文件目录及加载图标"中我讲述了如何使用TreeView控件树状实现显示"我的电脑"所有磁盘路径下的文件夹,并加载图标如下图所示. 此篇文章我需要讲述的是当鼠标点击左边的TreeView控件中的文件夹时,如何实现在右边的ListView控件中显示相应的文件,并显示文件的名称.大小.类型属性.主要运用的知识是如何实现ListView显示信息,Subitems()函数增加子项,如何设置列表头

C#遍历文件夹下所有xls文件,并把xls文件名,对应xls文件第I列最后一行分别写入新xls表第一列,第二列。

问题描述 如题.请教各位大侠.我想用C#遍历文件夹下所有xls文件,并把xls文件名,对应xls文件第I列最后一行分别写入新xls表第一列,第二列.请问如何实现.本人是新手,最好有详细的答复.不甚感激. 解决方案 解决方案二:取xls文件可用这个:///获取某一扩展名的文件集合///</summary>///<paramname="dictoryName">目录名</param>///<paramname="fiterName&quo

奇怪问题,同命名空间同文件夹下的Class竟然找不到

问题描述 今天把一个SqlHelper类放到项目的App_Code中,然后开始在某个网页中调用,无法找到,以为是命名空间的问题,于是把SqlHelper.cs的命名空间删除,还是无法找到.将SqlHelper.cs放到页面同文件夹下,并把命名空间改成该页面的命名空间,还是找不到.试了好几个类都是这样.于是在App_Code下建了个Class1.cs,页面中竟然还是找不到.在页面同目录下建了个Class2.cs,页面中能找到Class2,然后把Class2的命名空间删除,放入App_Code中.所