我为.NET框架构建了一个WPF程序。我需要运行以下corflags命令才能使程序正常工作。
corflags c:/[file location]/[file name].exe /32BITREQ+
现在我通过visual studio控制台手动执行此操作,但我希望在构建完成后自动执行此操作。这可能吗?
我试图寻找解决方案,但找不到解决方案。我最好的猜测是在Post-build事件命令行中使用命令。我试着跟随。
"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\corflags.exe" "$(ProjectDir)bin\$(ConfigurationName)\QardPrint.exe" /32BITREQ+
这会产生以下错误。在“输出”窗口中。
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)
在错误列表中
Could not open file for writing QardPrint H:\VSWorkspace\VSTS\Quantore\LoginQard\QardPrint\corflags
我没有直接使用corflags,而是尝试了Hans Passant在评论中提出的以下内容。
这并没有解决我对oracle连接(版本9.2)的错误。我的手动corflags命令确实解决了这个问题。
答案 0 :(得分:1)
这并没有解决我对oracle连接(版本9.2)的错误。我的手动corflags命令确实解决了这个问题。
更改Build-> General后,需要在命令行中注意QardPrint.exe的路径 - >平台目标设置为x86
Build-- >平台= x86
。
将平台目标更改为x86
后,QardPrint.exe在 x86 文件夹中新生成:
$(ProjectDir)bin\x86\$(ConfigurationName)\QardPrint.exe
如果您未在命令行“$(ProjectDir)bin\$(ConfigurationName)\QardPrint.exe
”中更改上一个路径,则会出现该错误。我在上一个命令行中遇到了同样的错误:
如果我改正了路径,那么一切都可以正常工作。
希望这有帮助。