2017-01-20 35 views
6

我試圖在我的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後,我將該參考標記爲「複製本地」,問題消失。

爲什麼我需要將我的引用標記爲「複製本地」,即使我明確地調用了該庫?

回答

5

如果DLL不在「可發現」位置,例如GAC或路徑環境變量中的路徑,那麼您需要使用copy local將它自動移到(在build上)到您的輸出目錄,這是可發現的(或者更準確地說,是在探測路徑上)。

相關問題