【问题标题】:Visual Studio 2010 "Add Reference" is copying dll to bin directory?Visual Studio 2010“添加引用”正在将 dll 复制到 bin 目录?
【发布时间】:2010-08-23 14:55:24
【问题描述】:

我正在使用 w7、64 位和 vs.net 2010。

我正在添加对“添​​加引用”对话框中的组件的引用。该组件是第 3 方 dll。

从历史上看,在 w7 32bit 上,它会在我的 web.config(在程序集标签内)中添加一行引用此 dll 并且不会将 dll 复制到 bin 目录。

但是,在 64 位 w7 上,dll 被复制到 bin 目录,并且 web.config 根本没有更新。

为什么 dll 被复制到 bin 目录? 谢谢

解决方案:(更新) 这些帖子给了我需要的线索。

如果您的系统在 GAC 中找不到 dll,VS.NET 会将 dll 复制到 bin 目录。 GAC 中的程序集(在您的工作站上注册),可以通过查看 C:\Windows\Assembly 目录找到。

vs.net“添加引用对话框”中列出的组件可能在也可能不在 gac 中。因为该组件列在“添加引用”对话框中并不意味着它已在您的本地工作站上注册。我导航到组件目录并将所需的 dll 拖到 C:\Windows\Assembly 目录。我关闭并重新打开 vs.net 并浏览到相同的文件并单击添加参考。

**这将程序集引用添加到我的 web.config(并且它也没有将 dll 复制到我的网站 bin 目录)****

【问题讨论】:

    标签: visual-studio visual-studio-2010


    【解决方案1】:

    在引用上,有一个Copy Local 属性(在“属性”窗口中),它决定是否应将程序集复制到输出目录。

    至于为什么这对其他参考文献可能无关紧要,MSDN 说:

    如果您部署/复制包含对在 GAC 中注册的自定义组件的引用的应用程序,则无论 复制本地 设置如何,该组件都不会随应用程序一起部署/复制.

    【讨论】:

    • 在 vs.net 2010 中,这是一个网站(而不是 Web 应用程序),因此解决方案中没有引用文件夹。我只有一个 bin 目录,如果我查看 dll 的属性,我只有“自动刷新路径”、“文件名”和“完整路径”属性。我没有“复制本地”属性。
    • @David 如果您将<assembly> 条目添加到 web.config 并删除 DLL,您的站点是否正常运行?
    • 谢谢,这个答案正是我想要的。如果有人想手动进行相同的更改,您可以将 <Private>True</Private> 标签添加到 csproj <Reference> 元素。所以<Reference Include="System"><Private>True</Private></Reference>
    【解决方案2】:

    它将副本复制到 bin 目录,以便可执行文件可以找到它。否则它不会找到它,除非 dll 安装在 GAC 中。

    【讨论】:

    • dll 在 gac 中(因为它确实显示在“添加引用”对话框窗口中)所以我希望它不会复制 dll
    • +1,这个答案是正确的。 “添加引用”对话框与 GAC没有任何关系。它只列出已注册的参考程序集,从不列出 GAC 目录中的任何内容。
    【解决方案3】:

    除了之前的回复:我认为 Visual Studio 会根据 DLL 不在您的计算机 GAC 中这一事实来确定 Copy Local 属性是否设置为 true。
    它会阻止 VS 复制本机 .net DLL,因此默认情况下它应该只复制“自定义”DLL。

    【讨论】:

    • 这是一个 asp.net“网站”而不是“Web 应用程序”,我无法更改复制本地属性。此外,该组件在 gac 中,因此它应该只是在 web.config 中添加对它的引用。不知道为什么,这是否与 w7 64 位工作站有关?
    • 您确定这是一个“网站”吗?我只是读到一个网站没有 Bin 文件夹...(bit.ly/aOlnfD)。这很奇怪,因为我能够更改 Copy Local 值。行为与 32 位和 64 位不同,这听起来很奇怪。这可能是因为 DLL 不是以 64 位编译的,并且编译器对复制的 DLL 执行了某些操作(它与 GAC 中的完全相同吗?)。但这听起来很奇怪。
    猜你喜欢
    • 1970-01-01
    • 2010-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-15
    • 1970-01-01
    • 2013-06-10
    • 1970-01-01
    相关资源
    最近更新 更多