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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.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
Visual studio Visual Studio 2010“;加上“参考”;正在将dll复制到bin目录吗?_Visual Studio_Visual Studio 2010 - Fatal编程技术网

Visual studio Visual Studio 2010“;加上“参考”;正在将dll复制到bin目录吗?

Visual studio Visual Studio 2010“;加上“参考”;正在将dll复制到bin目录吗?,visual-studio,visual-studio-2010,Visual Studio,Visual Studio 2010,我使用的是w7、64位和vs.NET2010 我正在向“添加引用”对话框中的组件添加引用。该组件是第三方dll 历史上,在w7 32位上,它会在my web.config(在Assemblys标记内)中添加一行引用此dll,而不会将dll复制到bin目录 但是,在64位w7上,dll被复制到bin目录,而web.config根本不会更新 为什么要将dll复制到bin目录? 谢谢 解决方案:(更新) 这些帖子给了我需要的线索 如果系统在GAC中找不到dll,VS.NET将把dll复制到bin目录。

我使用的是w7、64位和vs.NET2010

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

历史上,在w7 32位上,它会在my web.config(在Assemblys标记内)中添加一行引用此dll,而不会将dll复制到bin目录

但是,在64位w7上,dll被复制到bin目录,而web.config根本不会更新

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

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

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

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


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

在引用上,有一个属性(在属性窗口中),用于确定是否应将程序集复制到输出目录

至于为什么这对其他参考文献可能并不重要,MSDN表示:

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


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

除了前面的响应之外:我认为Visual Studio会根据dll不在您的计算机GAC中的事实来确定是否将
Copy Local
属性设置为true。

它防止VS复制本机.net DLL,因此默认情况下,它应仅复制“自定义”DLL。

在VS.net 2010中,这是一个网站(而不是web应用程序),因此解决方案中没有引用文件夹。我只有一个bin目录,如果我查看dll的属性,我只有“自动刷新路径”、“文件名”和“完整路径”属性。我没有“copy local”属性。@David如果您将
条目添加到web.config并删除DLL,您的站点是否正常运行?谢谢,这就是我想要的答案。如果任何人想要手动进行相同的更改,您可以将
True
标记添加到csproj
元素中。因此
True
这是一个asp.net“网站”而不是“Web应用程序”,我无法更改“复制本地”属性。此外,该组件位于gac中,因此它应该只在web.config中添加对它的引用。不知道为什么,这是否与此be w7 64位工作站有关?您确定这是一个“网站”吗?我刚读到一个网站没有垃圾箱文件夹。。。(). 这很奇怪,因为我可以更改复制本地值。这种行为与32位和64位的行为不同,这听起来很奇怪。这可能是因为DLL不是64位编译的,编译器对复制的DLL执行某些操作(与GAC中的完全相同吗?)。但这听起来很奇怪。dll在gac中(正如它在“添加引用”对话框窗口中显示的那样),所以我希望它不会复制dll+1,这个答案是正确的。“添加引用”对话框与GAC无关。它只列出已注册的引用程序集,从不列出GAC目录中的任何内容。