Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将DLL和OCX捆绑在一起_C#_Visual Studio_Dll - Fatal编程技术网

C# 如何将DLL和OCX捆绑在一起

C# 如何将DLL和OCX捆绑在一起,c#,visual-studio,dll,C#,Visual Studio,Dll,我已经编写了一个依赖于其他8个dll的“peak”dll。这些其他8个DLL反过来又依赖于数十个其他DLL和注册的OCX 如果我将所有这些复制到构建的输出中,那么一切都正常 我现在要做的是将所有这些复制到Program Files(x86)\myDll文件夹中,并将其用于多个已安装的应用程序,这些应用程序都希望使用该峰值DLL,而不必在各自的安装文件夹中拥有所有这些文件的副本 假设我已经在构建机器上的Programs files(x86)文件夹中安装了peak dll及其所有支持文件。我想启动一

我已经编写了一个依赖于其他8个dll的“peak”dll。这些其他8个DLL反过来又依赖于数十个其他DLL和注册的OCX

如果我将所有这些复制到构建的输出中,那么一切都正常

我现在要做的是将所有这些复制到Program Files(x86)\myDll文件夹中,并将其用于多个已安装的应用程序,这些应用程序都希望使用该峰值DLL,而不必在各自的安装文件夹中拥有所有这些文件的副本

假设我已经在构建机器上的Programs files(x86)文件夹中安装了peak dll及其所有支持文件。我想启动一个新的VS项目,以peak dll作为参考,然后能够编译和运行,而无需将peak dll及其支持文件复制到生成输出(或稍后的apps install文件夹)

我尝试了一种显而易见的方式(引用其“永久”文件夹中的peak dll),但“找不到文件或程序集xxxx或其依赖项之一。”

正确的方法是什么


Dave

您是在谈论构建环境还是部署的应用程序环境。您应该能够创建一个项目引用,以引用构建peak.dll的项目。无论是.NET还是Windows都不允许您像这样轻松创建dll地狱。NET程序集应该放在GAC中,OCX可以保持不变,任何本机支持DLL都需要通过SetDllDirectory()或路径找到。如果喜欢,可以使用AppDomain.AssemblyResolve。总有一天你会为此深深后悔的。