2017-01-20 19 views
6

Próbowałem odwołać System.Device w widoku Razor mojego projektu MVC C#. Zarzucił, że brakowało odniesienia, nawet po dodaniu go do projektu. Nie miałem zestawu w moim GAC, i żeby przetestować dodałem poniższą linię w moim pliku global.asax.cs (i skompilowałem z włączonymi wieloma flagami debugowania, nie wyobrażałem sobie, że został zoptymalizowany z dala).Jak ustalić, czy Kopiowanie lokalne jest konieczne?

new System.Device.Location.GeoCoordinate(); 

jak ta linia w działaniu mojego kontrolera:

System.Diagnostics.Debug.WriteLine(System.Device.Location.GeoCoordinate.Unknown.IsUnknown); 

To jeszcze nie zrobić. Znalezienie this solution Sprawdziłem mój GAC, ale go tam nie było (co miało sens, ale dobrze sprawdzić). Po znalezieniu this solution zaznaczyłem odwołanie jako Kopiuj lokalnie, a problem zniknął.

Dlaczego muszę oznaczać moje odwołanie jako Kopiuj lokalnie, mimo że jednoznacznie nawiązyłem połączenie z biblioteką?

Odpowiedz

5

Jeśli biblioteka DLL nie znajduje się w "możliwej do wykrycia" lokalizacji, takiej jak GAC lub ścieżka w zmiennej środowiskowej ścieżki, musisz użyć polecenia copy local, aby automatycznie przenieść (do kompilacji) do katalogu wyjściowego, który jest wykrywalny (lub, bardziej poprawnie, znajduje się na ścieżce sondowania).

Powiązane problemy