【发布时间】:2010-09-03 12:31:17
【问题描述】:
我正在尝试扩展某个应用程序。我正在使用与该应用程序捆绑在一起的 DLL 来扩展其功能。我正在使用 Visual Studio 2010 速成版。我添加了对 dll 库的引用。在参考属性中,“复制本地”选项被禁用。(灰显)为什么?我希望 Visual Studio 将 dll 复制到我的发布文件夹。如果无法做到这一点,还有其他方法可以捆绑 dll 吗?
【问题讨论】:
标签: visual-studio dll
我正在尝试扩展某个应用程序。我正在使用与该应用程序捆绑在一起的 DLL 来扩展其功能。我正在使用 Visual Studio 2010 速成版。我添加了对 dll 库的引用。在参考属性中,“复制本地”选项被禁用。(灰显)为什么?我希望 Visual Studio 将 dll 复制到我的发布文件夹。如果无法做到这一点,还有其他方法可以捆绑 dll 吗?
【问题讨论】:
标签: visual-studio dll
您对 Hans 回答的评论表明这是一个 COM 程序集并且您正在使用 Visual Studio 2010。
这意味着程序集引用很可能是在“嵌入互操作类型”设置为 true 的情况下添加的。这具有将 COM 程序集链接到您的二进制文件的效果,无需完全部署它。下面的链接有更详细的解释
如果您确实想部署它,则需要执行以下操作
【讨论】:
这取决于它是什么类型的 DLL。如果它是 COM 服务器,则当您为该 COM 服务器注册了 PIA 时,Copy Local 将关闭。如果它是一个常规的 .NET 程序集,那么它在 GAC 中注册时将关闭。
通过分别使用 regasm /u 取消注册 PIA 或使用 gacutil /u 将其从 GAC 中删除来解决此问题。请注意,如果此 DLL 要求在目标计算机上执行其安装程序,您可能不想这样做。这很可能。与组件供应商或作者交谈,了解您应该做什么。
【讨论】: