NuGetPackageImportStamp ist eine Problemumgehung für Visual Studio 2013 und spätere Versionen, die nicht erkennen können, dass ein NuGet-Paket einen MSBuild-Import hinzugefügt oder entfernt hat.
Diese Problemumgehung ist für ältere Versionen von Visual Studio nicht erforderlich. Selbst in Visual Studio 2013 kann die Eigenschaft sicher entfernt werden : Wenn Sie die Lösung schließen und erneut öffnen, werden die importierten MSBuild-Ziele von Visual Studio erneut geladen.
NuGet-Quellcode zeigt, dass NuGet diese Eigenschaft hinzufügt, wenn ein Paket einen MSBuild-Import hinzufügt oder entfernt. Es wird jedes Mal eine neue GUID verwendet. Visual Studio 2013 erkennt, dass sich das Projekt geändert hat, und bietet das Neuladen an. Das Hinzufügen oder Entfernen eines MSBuild-Imports reicht für Visual Studio 2013 nicht aus, um zu wissen, dass sich das Projekt zur Laufzeit geändert hat. Dies löst NuGet mit dieser Problemumgehung.
Das StyleCop.MSBuild NuGet-Paket enthält ein benutzerdefiniertes MSBuild-Ziel. Wenn Sie dieses NuGet-Paket hinzufügen oder entfernen, wird diese Eigenschaft hinzugefügt.
UPDATE : Matt Wards Kommentar ist korrekt und wichtig.
In NuGet befindet sich noch Code , der den NuGet-Paketstempel hinzufügt, und der Code sucht nicht mehr nach Visual Studio 2013.
Hier sind meine Empfehlungen:
- Erstellen Sie Ihre neuen Projekte entweder mit Visual Studio oder Powershell.
- Wenn Sie ein altes csproj aktualisieren und es nicht funktioniert, vergleichen Sie dieses alte csproj mit einem neuen funktionierenden csproj, das Sie entweder mit Visual Studio oder Powershell erstellt haben. Wenn das neue funktionierende csproj eine
<NuGetPackageImportStamp>
Direktive verwendet, fügen Sie es Ihrem alten defekten csproj hinzu und prüfen Sie, ob dies die Probleme behebt. unabhängig davon, welche Visual Studio-Version Sie verwenden.
- Wenn Ihr altes csproj immer noch nicht funktioniert, beachten Sie die
<TargetFrameworkProfile>
Richtlinie. Existiert es in Ihrem neuen Arbeitsprogramm? Ziehen Sie in Betracht, dies zu entfernen.
csproj
Datei jedes Projekts immer unterschiedlich . Ist es wichtig, welche GUID ich wähle?