2014-06-05 12 views
59

Quando si aggiungono alcuni pacchetti NuGet a un progetto, a volte un elemento strano viene visualizzato nel primo gruppo di proprietà del file .csproj.Per cosa è NuGetPackageImportStamp?

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

Il timbro è diverso ogni volta e non sembra essere sequenziale.

Non riesco a trovare alcun riferimento a <NuGetPackageImportStamp> nella documentazione NuGet. A cosa serve e come funziona? È necessario?

Un pacchetto che sembra aggiungere questo ogni volta è StyleCop.MSBuild, almeno con la versione corrente 4.7.49. Aggiungi semplicemente il pacchetto a un nuovo progetto e vedrai questo elemento misterioso apparire nel tuo file di progetto.

risposta

63

Si tratta di una soluzione per Visual Studio 2013.

Se si guarda al NuGet source code si vedrà che NuGet aggiunge questa proprietà quando un pacchetto NuGet aggiunge o rimuove un'importazione MSBuild. Usa sempre una guida nuova e sembra essere un modo per dire a Visual Studio 2013 che il progetto è cambiato. Presumo che ciò sia dovuto al fatto che solo aggiungere o rimuovere un'importazione MSBuild non è sufficiente per consentire a Visual Studio di sapere che il progetto è stato modificato in fase di runtime.

Il pacchetto NuGet di StyleCop.MSBuild include una destinazione MSBuild personalizzata, pertanto l'aggiunta o la rimozione di questo pacchetto NuGet causerà l'aggiunta di questa proprietà.

Credo che la proprietà non è necessaria, quindi si dovrebbe essere OK per rimuoverlo. Se chiudi e riapri la soluzione, le destinazioni MSBuild importate verranno ricaricate da Visual Studio.

Questa soluzione alternativa non è richiesta per altre versioni di Visual Studio.

+0

così può essere rimosso durante il porting di un progetto in Visual Studio 2015? –

+0

Sì, può essere rimosso. –

+1

Attualmente sto unendo 2 rami insieme e questo valore è sempre diverso nel file 'csproj' di ogni progetto. Importa quale GUID scelgo? – hvaughan3