Запуск java.exe в качестве шага предварительной сборки в .NET Core / Standard завершается с ошибкой 9009 - PullRequest
0 голосов
/ 15 января 2019

Я пытаюсь запустить 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 напрямую из командной строки работает нормально.

1 Ответ

0 голосов
/ 16 января 2019

Очевидно, что c: \ windows \ system32 направляется по другому пути, поскольку Visual Studio является 32-разрядным приложением. Использование специального псевдонима «Sysnative» работает:

<Target Name="Java" BeforeTargets="Build">
    <Exec Command="c:\Windows\Sysnative\java.exe"/>
</Target>

Подробнее здесь .

...