在 .NET Core/Standard 中将 java.exe 作为预构建步骤运行失败并显示

我正在尝试将 java.exe 作为 C#-.NET Standard 2.0 项目中的预构建步骤运行。csproj 文件包含以下代码段:


<Target Name="Java" BeforeTargets="Build">

    <Exec Command="c:\Windows\System32\java.exe"/>

</Target>

(我简化了用于测试的命令行。)文件 java.exe 存在于 c:\windows\system32 中,但构建失败并出现错误代码 9009:


c:\Windows\System32\java.exe' is not recognized as an internal or external command,

1>operable program or batch file.

1>C:\workspace\Test.csproj(21,5): error MSB3073: The command "c:\Windows\System32\java.exe" exited with code 9009.

1>Done building project "Test.csproj" -- FAILED.

直接从命令行运行 java.exe 可以正常工作。


潇潇雨雨
浏览 103回答 1
1回答

白衣染霜花

显然,c:\windows\system32 被路由到另一个路径,因为 Visual Studio 是一个 32 位应用程序。使用特殊别名“Sysnative”有效:<Target&nbsp;Name="Java"&nbsp;BeforeTargets="Build"> &nbsp;&nbsp;&nbsp;&nbsp;<Exec&nbsp;Command="c:\Windows\Sysnative\java.exe"/> &nbsp;&nbsp;&nbsp;&nbsp;</Target>更多信息在这里。
打开App,查看更多内容
随时随地看视频慕课网APP