Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.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_C#_.net_Visual Studio 2012 - Fatal编程技术网

C# 不允许我分发第三方DLL

C# 不允许我分发第三方DLL,c#,.net,visual-studio-2012,C#,.net,Visual Studio 2012,假设我有一个引用库XYZ.dll的Visual Studio项目。我无法分发该dll,但我知道许多人都有该dll的许可证 如何将项目连接到目标计算机上的XYZ.dll?更确切地说,我想做以下几件事: 在Visual Studio中的项目中引用XYZ.dll 分发不带XYZ.dll的解决方案/项目的编译版本 让安装我的程序的客户将程序链接到他的XYZ.dll副本,以便程序可以使用它 (这可能是一个简单的问题,但我找不到答案,可能是因为搜索词错误) 如果XYZ.dll与第三方产品一起安装,您可以检查

假设我有一个引用库XYZ.dll的Visual Studio项目。我无法分发该dll,但我知道许多人都有该dll的许可证

如何将项目连接到目标计算机上的XYZ.dll?更确切地说,我想做以下几件事:

  • 在Visual Studio中的项目中引用XYZ.dll
  • 分发不带XYZ.dll的解决方案/项目的编译版本
  • 让安装我的程序的客户将程序链接到他的XYZ.dll副本,以便程序可以使用它

  • (这可能是一个简单的问题,但我找不到答案,可能是因为搜索词错误)

    如果XYZ.dll与第三方产品一起安装,您可以检查它是否已在GAC中注册

    如果是这样,那么您-在VS项目中-在GAC中引用指向它的XYZ.dll,然后将“复制本地”设置为false,这样它就不会被复制到程序的bin目录并从那里使用

    如果dll不在GAC中,问题就更大了-在这种情况下,您需要向用户询问assebly的位置(或者从注册表读取,如果您知道要搜索的产品),然后使用AssemblyResolve事件()使用该路径动态解析此程序集


    还有一种方法,您可以在项目中创建一个“代理”类,从客户计算机上的路径动态加载第三方程序集,然后创建一组代理方法,使用反射调用加载的第三方程序集。

    我认为这与stackoverflow无关,因为它与编程无关,而与许可无关。如果我是你,我会联系第三方dll的供应商,在安装中包括第三方dll的安装,或者在安装中包括第三方dll的许可证。。仍处于关闭状态,请联系XYZ支持部门。也许他们的安装程序在GAC中注册了XYZ.dll程序集,因此您的软件可以正常工作。另一个选项:安装安装程序以获取第三方库。假设它使用供应商的安装程序,它们将显示任何许可协议、合同等。一旦完成,您的应用程序将继续运行并从供应商目录引用库。(这是一个类似于安装.NET应用程序并首先获取框架的工作流)这可能不是一个编程问题,但我只对它的技术站点感兴趣。我希望客户的系统上有XYZ.dll,并希望安装该程序,使其连接到该dll(在客户的帮助下)。您能解释一下“连接到dll”吗?