ich ein WPF-Programm für das .NET-Framework erstellen. Ich muss den folgenden Befehl corflags ausführen, damit das Programm ordnungsgemäß funktioniert.Führen Sie corflags automatisch nach Build
corflags c:/[file location]/[file name].exe /32BITREQ+
Jetzt mache ich dies manuell die Visual Studio-Konsole Trog, aber ich möchte, dass automatisch tun, nachdem ein Build abgeschlossen. Ist das möglich?
Ich versuchte nach einer Lösung zu suchen, konnte aber keine finden. Meine beste Vermutung ist es, einen Befehl in der Befehlszeile des Post-Build-Ereignisses zu verwenden. Ich habe versucht zu folgen.
"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\corflags.exe" "$(ProjectDir)bin\$(ConfigurationName)\QardPrint.exe" /32BITREQ+
Dies gibt den folgenden Fehler. im Ausgabefenster.
1>Target "PostBuildEvent: (TargetId:81)" in file "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets" from project "H:\VSWorkspace\VSTS\Quantore\LoginQard\QardPrint\QardPrint.csproj" (target "CoreBuild" depends on it):
1>Using "Exec" task from assembly "Microsoft.Build.Tasks.Core, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
1>Task "Exec" (TaskId:58)
1> Task Parameter:WorkingDirectory=bin\x86\Debug\ (TaskId:58)
1> Task Parameter:Command="C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\corflags.exe" "H:\VSWorkspace\VSTS\Quantore\LoginQard\QardPrint\bin\Debug\QardPrint.exe" /32BITREQ+ (TaskId:58)
1> "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\corflags.exe" "H:\VSWorkspace\VSTS\Quantore\LoginQard\QardPrint\bin\Debug\QardPrint.exe" /32BITREQ+ (TaskId:58)
1> Microsoft (R) .NET Framework CorFlags Conversion Tool. Version 4.6.1055.0 (TaskId:58)
1> Copyright (c) Microsoft Corporation. All rights reserved. (TaskId:58)
1> (TaskId:58)
1>corflags : error CF001: Could not open file for writing
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(5019,5): error MSB3073: The command ""C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\corflags.exe" "H:\VSWorkspace\VSTS\Quantore\LoginQard\QardPrint\bin\Debug\QardPrint.exe" /32BITREQ+" exited with code 1.
1>Done executing task "Exec" -- FAILED. (TaskId:58)
In der Fehlerliste
Could not open file for writing QardPrint H:\VSWorkspace\VSTS\Quantore\LoginQard\QardPrint\corflags
Statt mit CorFlags direkt habe ich versucht, auch die folgenden Dinge Hans Passant in den Kommentaren vorgeschlagen.
- ProjectProperties -> Build -> Allgemein -> PlatformTarget: x86
- ProjectProperties -> Build -> Plattform: x86
der Fehler dadurch nicht löse ich mit haben eine Oracle-Verbindung (Version 9.2). Mein manueller Befehl corflags löst dieses Problem.
Sie haben den PATH nicht festgelegt, sodass corflags.exe gefunden werden kann. Suchen Sie im Ausgabefenster nach der genauen Fehlermeldung. Vermeide es, dies auf die harte Tour zu tun, wenn es einfach ist, das gleiche Ergebnis ohne ein Build-Ereignis zu erhalten. Projekt> Eigenschaften> Registerkarte Erstellen, Plattformziel = x86. –
Plattformziel ist bereits auf x86. Ich brauche corflags für mein Problem. Ich habe den vollständigen Pfad zu corflags.exe auch versucht. Aktualisierte Frage mit voller Fehlermeldung aus dem Ausgabefenster. –
Das ist die Fehlermeldung, die Sie bereits kennen, wir brauchen die vorherige. Dies funktioniert immer besser, wenn Sie alles anzeigen, was Sie im Ausgabefenster sehen. Und nein, du brauchst keine corflags. Wenn Sie es ohne eine Option ausführen, sehen Sie, dass 32BITREQ bereits aktiviert ist. Es ist also nicht sinnvoll, es wieder einzuschalten. –