我使用Visual Studio 2010与MCV4(单独安装) .
有些dll链接到orignal路径,有些dll被复制到项目中 . 我不希望将它们复制到项目中 .
即在构建Web项目(MCV4 - > Web API)时,我看到几个自动创建的dll:Antlr3.Runtime.dll - 在项目文件夹上创建(并且路径不是原始文件夹) .
还有:EntityFramework.dll,System.Web.Optimization.dll等等,
其中system.web位于C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.0 \ System.Web.dll文件夹中 .
为什么将上面的dll复制到项目文件夹中,如何强制它们在原始dll上呢?
谢谢 :)
1 回答
如果右键单击项目中的每个引用程序集,则会出现“Copy Local” . 对于每个参考,您设置Copy Local = true它将被复制到您的输出文件夹(\ bin) .
除非DLL在GAC(Global Assembly Cache)中,否则您将需要在本地复制它,因为应用程序将不知道从哪里加载这些DLL . 默认情况下,当您添加引用时,当DLL不在GAC中时,Copy Local将为true .
如果应用程序找不到它需要的DLL,则在需要DLL时会失败 .
.Net应用程序只能从GAC或应用程序路径和子目录加载DLL,除非您使用自己的Assembly.Load()代码来执行此操作 .