我试图在我的 MVC C# 项目的 Razor View 中引用 System.Device。它提示说即使我将它添加到项目中,引用也丢失了。我的 GAC 中没有程序集,为了测试,我在我的 global.asax.cs 文件中添加了以下虚拟行(并在启用多个调试标志的情况下进行编译,我不认为它会被优化掉)。
new System.Device.Location.GeoCoordinate();
以及我的 Controller 操作中的这一行:
System.Diagnostics.Debug.WriteLine(System.Device.Location.GeoCoordinate.Unknown.IsUnknown);
这样还是不行。查找 this solution我检查了我的 GAC,但它不存在(这是有道理的,但很好检查)。找到this solution后我将引用标记为 Copy Local,然后问题就消失了。
为什么我需要将我的引用标记为 Copy Local,即使我明确调用了库?
最佳答案
如果 DLL 不在“可发现”位置,例如 GAC 或路径环境变量中的路径,那么您需要使用复制本地自动将其移动(在构建时)到您的输出目录,这是可发现的(或者更准确地说,是在探测路径上)。
关于c# - 如何确定是否需要 Copy Local,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41772752/