如何确定是否需要复制本地

mlh*_*Dev 6 .net c# asp.net-mvc visual-studio

我尝试在我的MVC C#项目的Razor视图中引用System.Device.它抱怨说,即使我把它添加到项目中,也没有引用.我没有在我的GAC中组装,并且为了测试我在我的global.asax.cs文件中添加了下面的虚拟行(并且在启用了多个调试标志的情况下编译,我不认为它已经被优化了).

new System.Device.Location.GeoCoordinate();
Run Code Online (Sandbox Code Playgroud)

以及我控制器动作中的这一行:

System.Diagnostics.Debug.WriteLine(System.Device.Location.GeoCoordinate.Unknown.IsUnknown);
Run Code Online (Sandbox Code Playgroud)

这仍然没有做到.找到这个解决方案我检查了我的GAC,但它不存在(这是有道理的,但很好检查).找到此解决方案后,我将引用标记为Copy Local,问题就消失了.

为什么我需要将我的引用标记为Copy Local,即使我明确地调用了库?

com*_*ech 5

如果DLL不在"可发现"位置,例如GAC或路径环境变量中的路径,那么您需要使用copy local自动将其(在构建时)移动到您可以发现的输出目录(或者,更准确地说,是在探测路径上).