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