我正在使用带有MCV4的Visual Studio 2010(单独安装)。
有些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上呢?
谢谢:)
答案 0 :(得分: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()代码执行此操作。