2014-06-05 38 views
59

Podczas dodawania niektórych pakietów NuGet do projektu czasami pojawia się dziwny element w pierwszej grupie właściwości pliku .csproj.Co to jest NuGetPackageImportStamp?

<PropertyGroup> 
    ... 
    <NuGetPackageImportStamp>3d051ef3</NuGetPackageImportStamp> 
</PropertyGroup> 

Znaczek jest inny za każdym razem i nie wydaje się sekwencyjny. Nie można znaleźć odniesienia do <NuGetPackageImportStamp> w dokumentacji NuGet. Po co to jest i jak działa? Czy to konieczne?

Jeden pakiet, który pojawia się, aby dodać to za każdym razem, jest StyleCop.MSBuild, przynajmniej z obecną wersją 4.7.49. Po prostu dodaj tę paczkę do nowego projektu, a ten tajemniczy przedmiot pojawi się w twoim pliku projektu.

Odpowiedz

63

Jest to obejście dla Visual Studio 2013.

Jeśli spojrzeć na NuGet source code widać, że Nuget dodaje tę właściwość, gdy pakiet Nuget dodaje lub usuwa import MSBuild. Używa za każdym razem nowego przewodnika i wydaje się być sposobem poinformowania Visual Studio 2013, że projekt się zmienił. Zakładam, że dzieje się tak dlatego, że dodanie lub usunięcie importu MSBuild nie wystarczy, aby Visual Studio wiedział, że projekt zmienił się w czasie wykonywania.

Pakiet StyleCop.MSBuild NuGet zawiera niestandardowy obiekt MSBuild, więc dodanie lub usunięcie pakietu NuGet spowoduje dodanie tej właściwości.

Wierzę, że nieruchomość nie jest wymagana, więc powinieneś być w porządku, aby ją usunąć. Jeśli zamkniesz i ponownie otworzysz rozwiązanie, zaimportowane cele MSBuild zostaną ponownie załadowane przez Visual Studio.

To obejście nie jest wymagane w przypadku innych wersji programu Visual Studio.

+0

czy można to usunąć podczas przenoszenia projektu do studia wizualnego 2015? –

+0

Tak, można go usunąć. –

+1

Obecnie łączę 2 gałęzie razem i ta wartość jest zawsze inna w pliku 'csproj' każdego projektu. Czy ma znaczenie, który GUID wybieram? – hvaughan3