Der während des Builds angezeigte Fehler: Fehler MSB4102: Der Wert "" des Attributs "Project" im Element ist ungültig. Parameter "Pfad" darf keine Länge von Null haben.Visual Studio 2017, Service Fabric-Projekt, Sdk-Ziele: Fehler beim Packen des SF-Projekts
Die Reproduktion Schritte sind einfach: VS 2017 RC 2. Erstellen Sie neue Service Fabric Application Ausrichtung ASP.Net Core mit Web-API. Versuchen Sie dann, das Service Fabric-Projekt zu packen.
Ich vermute, dass es einen Fehler in Microsoft.VisualStudio.Azure.Fabric.ApplicationProject.targets gibt, der Teil von VS 2017 ist. Der, der in diesem Verzeichnis befindet: C: \ Programme (x86) \ Microsoft Visual Studio \ 2017 \ Professional \ MSBuild \ Microsoft \ VisualStudio \ v15.0 \ Dienst Fabric Tools
In der SDK-Zieldatei gibt es diese Anweisung.
<PropertyGroup Condition="'$(LanguageTargets)' == ''">
<LanguageTargets Condition="'$(MSBuildProjectExtension)' == '.csproj'">$(MSBuildToolsPath)\Microsoft.CSharp.targets</LanguageTargets>
<LanguageTargets Condition="'$(MSBuildProjectExtension)' == '.vbproj'">$(MSBuildToolsPath)\Microsoft.VisualBasic.targets</LanguageTargets>
</PropertyGroup>
<!-- TODO: Generate error if LanguageTargets property isn't set here. This would happen, for example if an .fsproj referenced the .NET Sdk
but not the FSharp one. See https://github.com/dotnet/sdk/issues/448 -->
<Import Project="$(LanguageTargets)"/>
Ein wenig schwer zu entziffern, wenn Sie nicht daran gewöhnt sind. Aber. Im Wesentlichen heißt es, wenn ein .csproj die CSharp-Ziele lädt, wenn es ein .vbproj ist, laden die VB-Ziele, wenn beide nichts tun. Dann versucht die nächste Zeile, die angegebenen Ziele zu importieren.
Im Fall eines Service Fabric-Projekts ist dies ein .sfproj, was bedeutet, dass LanguageTargets leer ist und wir den Fehler oben in diesem Beitrag erhalten. Die SF-Zieldatei sollte LanguageTargets festlegen, denke ich, bevor sie diese Zeile erreicht.
Ich vermute, dass diese sdk.targets-Datei eine Standardvorlage ist, die noch nicht für die Verarbeitung von VS-2017-Fabric-Projekten aktualisiert wurde.
Mögliche Antwort, aber ich mag nicht die Idee der Bearbeitung der Sdk.targets-Datei von VS installiert. Eine Änderung dieser Linie in Sdk.targets wird nach diesem Fehler und verursacht keine weiteren Fehler im Build: