我尝试在我的MVC C#项目的Razor视图中引用System.Device。它抱怨说,即使我将它添加到项目中,也没有引用。我没有在我的GAC中进行汇编,并且为了测试我在我的global.asax.cs文件中添加了下面的虚拟行(并且在启用了多个调试标志的情况下编译,我不会想象它已经被优化了)。
new System.Device.Location.GeoCoordinate();
以及我控制器行动中的这一行:
System.Diagnostics.Debug.WriteLine(System.Device.Location.GeoCoordinate.Unknown.IsUnknown);
这仍然没有做到。查找this solution我检查了我的GAC,但它不在那里(这是有道理的,但很好检查)。找到this solution后,我将引用标记为“复制本地”,问题就消失了。
为什么我需要将我的引用标记为Copy Local,即使我明确地调用了库?
答案 0 :(得分:5)
如果DLL不在“可发现”位置(例如GAC或路径环境变量中的路径),则需要使用copy local自动将其(在构建时)移动到输出目录,是可发现的(或者,更准确地说,是在探测路径上)。