2017-01-24 2 views
5

Ich habe einen Standard VSIX Projekt ein Projekt Abhängigkeit von einer Klassenbibliothek Projekt in der gleichen Lösung unter. Alles lief gut, bis ich die Klassenbibliothek auf das neue VS2017RC vereinfachte csproj umstellte. Die Klassenbibliothek baut fein (mein Dotnet SDK 1.0.0-preview4-004233), aber wenn die VSIX zu bauen versucht, erhalte ich:Missing „BuiltProjectOutputGroupDependencies“ Gebäude VSIX je nach neuen, vereinfachten csproj

error MSB4057: The target "BuiltProjectOutputGroupDependencies" does not exist in the project. 

Das sieht offenbar wie eine Inkompatibilität mit einem traditionellen VSIX csproj erwartet etwas von abhängige Projekte, die das neue csproj nicht bereitstellt.

Hat jemand hier reingestoßen oder einen Ratschlag bekommen? Ich werde den Projektverweis entfernen und manuell auf die Ausgabe-DLL verweisen.

Als zugehörige Seite beachten, ist es unklar, welche Ausgabe DLL die VSIX aus der Klassenbibliothek auswählen würden, da die neue csproj Frameworks mehr Ziel unterstützt.

Antwort

0

Ich glaube, Sie können das gleiche Problem seine Begegnung hatte ich, als ich versuchte, meine Visual Studio-Erweiterung von einer .NET-Standard-Bibliothek zu verweisen, die mehrere Frameworks wurden Targeting. Es gibt eine GitHub-Ausgabe dotnet/sdk#433 darüber.

Was ich tun musste, war meine anderen Ziele zu entfernen. In meinem Fall hatte ich:

<Project Sdk="Microsoft.NET.Sdk"> 
    <PropertyGroup> 
     <TargetFrameworks>netstandard1.3;net46</TargetFrameworks> 
    </PropertyGroup>  
    ... 
</Project> 

Und ich musste es nur Ziel netstandard1.3 ändern und meine VSIX Ziele .NET 4.6 (da es mit .NET 4.6 nach den .NET Standard chart kompatibel ist).

<Project Sdk="Microsoft.NET.Sdk"> 
    <PropertyGroup> 
     <TargetFramework>netstandard1.3</TargetFramework> 
    </PropertyGroup> 
    ... 
</Project> 
4

Wie on the GitHub issue erwähnt, ist hier eine Abhilfe:

  1. Unload das VSIX Projekt.
  2. Klicken Sie mit der rechten Maustaste, und bearbeiten Sie die Datei .csproj.
  3. Finden Sie die <ProjectReference> für das Projekt, das begann, das Problem zu verursachen.
  4. Fügen Sie das Element hinzu, indem Sie die korrekte .NET Framework-Version verwenden, auf die Sie im referenzierten Projekt abzielen.
  5. Laden Sie das VSIX-Proejct neu und bauen Sie es neu auf.
+0

Das ist die Lösung wirklich. – Shrike