繁体   English   中英

不允许分发第三方DLL

[英]Third-Party DLL I am not allowed to distribute

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

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

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

(这可能是一个简单的问题,但可能由于错误的搜索词而无法找到答案)。

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

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

如果dll不在GAC中,则问题变得更加棘手-在这种情况下,您需要向用户询问资产的位置(或者,如果您知道要搜索的产品,请从注册表中读取),然后使用该路径动态地解决此程序集使用AssemblyResolve事件( https://msdn.microsoft.com/zh-cn/library/system.appdomain.assemblyresolve%28v=vs.110%29.aspx

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM