2016-06-03 7 views
2

instructions here Folgen, bekomme ich folgende Fehlermeldung:Das Attribut "Name" in Elemente <Target> unerkannt ist

The attribute "Name" in element is unrecognized

In der CSPROJ Datei habe ich den PostBuild Abschnitt entfernt und ersetzt es mit:

<Target Name="SignOutput" AfterTargets="CoreCompile"> 
<Exec Command="&quot;C:\Program Files (x86)\Windows Kits\10\bin\x64\signtool.exe&quot; sign /f &quot;$(ProjectDir)My_Cert.pfx&quot; /p mypassword &quot;$(ProjectDir)obj\$(ConfigurationName)\MyExe.exe&quot;" /> 
</Target> 

Ich mache das, weil ich bekomme eine "Datei hat einen anderen berechneten Hash als in Manifest angegeben" Fehler, wenn Sie versuchen, eine neu veröffentlichte SmartClient-Anwendung auszuführen. Was ist falsch?

+1

Kann nicht reproduzieren, das Ziel, das Sie zeigen, ist in Ordnung, so dass die Ursache des Fehlers woanders ist – stijn

+0

Verwenden Sie VS 2015? Windows 10? –

+3

Weder, aber das sollte nicht wichtig sein. Wenn du deine Frage noch einmal liest, wo du "postbuild ersetzt" sagst, denke ich, dass ich das Problem gefunden habe: hast du das Ziel, das du zeigst, vielleicht in eine PropertyGroup gelegt? Thta ist nicht wie es funktioniert: es sollte auf der Projektebene definiert werden – stijn

Antwort

5

Das in einem csproj eingefügte standardmäßige PostBuildEvent wird als Eigenschaft in einer PropertyGroup definiert, und es scheint, dass Sie den Code für das Target in diese propertyGroup eingefügt haben. Das hat nicht nur den gewünschten Effekt, es verursacht sogar Fehler beim Laden der Projektdatei, da die Eigenschaften kein Namensattribut haben, daher haben Sie ein fehlerhaftes XML. Lösung: setze das Target einfach auf die Projektebene und es wird automatisch beim Erstellen, nach CoreCompile, aber vor dem Verknüpfen usw. aufgerufen, also ist es auch eine Art, ein 'Postbuildereignis' zu definieren, daher die Verwirrung.

Verwandte Themen