2014-05-19 12 views
8

Kiedy zainstalować pakiet Nuget, zazwyczaj aktualizuje mój plik proj z nowym odniesieniem tak:W jaki sposób VS/NuGet decyduje się utworzyć odniesienia csproj i co oznaczają różnice?

<Reference Include="Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> 
    <SpecificVersion>False</SpecificVersion> 
    <HintPath>..\packages\Newtonsoft.Json.4.5.11\lib\net40\Newtonsoft.Json.dll</HintPath> 
</Reference> 

Istnieją dwie części o to, że każdy z których czasami nie są dodawane:

, Version=4.5.0.0... 

i

<SpecificVersion>False</SpecificVersion> <!-- sometimes this is present but set to true --> 

Jakie są konsekwencje każdego z tych ustawień i jak NuGet wybiera, którą kombinację wybrać podczas instalacji/aktualizacji ap wybór?

+0

Pomocne może być wyjaśnienie, w jaki sposób dodana została alternatywna metoda. –

+0

@ErikFunkenbusch: czasami sekcja Version = ... nie jest dodawana, czasami określona wersja jest prawdziwa, a czasami brakuje konkretnej wersji. – ChaseMedallion

+0

Czy masz przykłady pakietów nuget, które deklarują się inaczej po dodaniu? Zgadywanie ma to związek z tworzeniem/strukturowaniem pakietu. –

Odpowiedz

-2

Nie przejmuj się tym. Jedyną sytuacją, w której kiedykolwiek zapuszczam się na csproj, jest ustawienie wierszy widoku kompilacji na prawdziwe, gdy robię kod ropey. Jeśli nie masz żadnych problemów, wszystko jest w porządku. Określona wersja i numery wersji są pozostałością po mrocznych czasach dll piekła w .net, gdzie mieliśmy wiele wersji Dll w GAC. Widzę je tylko wtedy, gdy odwołuję się do niektórych widocznych elementów COM.

+0

Dzięki za radę, ale to nie jest odpowiedź. Z chęcią zrozumiem tajniki tego. Muszę wierzyć, że jest jakiś powód, dla którego NuGet zachowuje się tak, jak to robi. – ChaseMedallion

Powiązane problemy