通常,您必须将应用程序使用的所有.dll文件放在与.exe文件相同的位置。我想将这些库保存在其他专用文件夹中,并只显示我的应用程序在哪里寻找它们(通过app.config中的某个路径或类似的东西)。我该怎么做呢?如何将.dll文件与使用它们的.exe文件分开?
回答
您可以使用app.config中的<probing>
element指定在哪里查找依赖关系。我相信这必须是exe文件所在的目录,而不是在磁盘上的任意位置。
查看"Locating the assembly through codebases or probing"了解更多关于这如何挂在一起的更多信息。
以及我需要在磁盘上的其他地方,而不是应用程序的目录子目录 – agnieszka 2009-06-30 09:16:11
在这种情况下,我认为你的选择1)GAC; 2)Assembly.LoadFrom(即手动执行); 3)调查codeBase元素,但我不确定这会覆盖你的情况。 – 2009-06-30 09:21:35
您可以使用Reflection从指定的路径加载到dll中,然后访问其中的所有类和方法,虽然这将是一项艰巨的工作!你也将失去智能感知的好处,但它是可能的,请参阅:
也考虑GAC - 其目的是为了保持组件;)
其实有一些其他的方式,西装我的需求最好。使用反射(assebly.loadfrom)是不愉快的,需要我的代码进行很多更改。但是,您可以向appDomain.AssemblyResolve事件添加处理程序,并在找不到要求的程序集的位置时显示它。
static void Main()
{
AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
return Assembly.LoadFrom("C:\\TestAssembly.dll");
}
我建议您使用GAC或分发所有依赖的DLL与EXE。否则,您可能会冒险得到模糊的版本控制错误或突然停止工作的应用程序。
另外,不要忘记,如果您的共享代码在网络共享上,您可能需要修改每台计算机的安全设置。
Regards
- 1. 通过将它们传递给.exe来打开文件
- 2. 如何打开* .jar文件?它与Windows的。* exe相同吗?
- 3. 如何附加JavaScript文件并在构建dll文件时使用它们
- 4. 如何从DLL/EXE创建MSIL文件
- 5. dll文件或.exe文件丢失
- 6. 使用C++模块时,是否将函数声明(.hpp文件)与它们的定义(.cpp文件)分开?
- 7. 注入dll到exe文件
- 8. 如何将.ico文件与已编译的.exe文件合并?
- 9. 如何使用ILMerge将XML文档文件与DLL合并?
- 10. 如何将dll文件添加到C#项目并正确使用它们?
- 11. 如何从EXE打开的文件夹打开文件。 VB
- 12. 使用RoundhousE与dll文件
- 13. 如何从VB6 DLL中打开WPF exe文件?
- 14. 如何在ubuntu中打开dll和exe文件
- 15. 将.exe C++文件(创建窗口)转换为.dll C++文件并在C#中使用该.dll文件。
- 16. 如何使用PowerShell来提取.dll文件或数据.exe文件
- 17. 如何使用外部.dll创建.exe文件?
- 18. Py2exe:将静态文件嵌入exe文件本身并访问它们
- 19. 使用TextEdit打开文件并将它们导出为pdf
- 20. 分析用于代码膨胀的.exe/.dll(Windows PE)文件
- 21. exe如何工作以及如何调用dll和exe文件寻址
- 22. 我的exe只运行在exe文件中的dll文件。我需要从文件运行EXE我怎么能?
- 23. 使用MATLAB文件并将它们部署到DLL的替代品
- 24. 如何将dll文件与nunit-x86.exe(而不是nunit.exe)相关联?
- 25. 如何在用户运行EXE文件时覆盖EXE文件?
- 26. 如何重命名顺序文件,使它们从零开始?
- 27. 如何使用py2exe将软件包添加到.exe文件中?
- 28. 如何分析使用Delphi构建的exe的文件大小?
- 29. 运行exe文件,除非使安装(嵌入DLL到EXE)
- 30. 如何使用Python中的DLL文件?
我很好奇你为什么这样做?如果原因是这样你可以独立地更新这些dll,每个应用程序可能是一个wcf web服务可能提供更好的解决方案?老实说呢 – Calanus 2009-06-30 08:53:15
?我被告知;)我们已经失去了使用相同的库的应用程序,他们想把它们保存在一个地方 – agnieszka 2009-06-30 09:17:02