Это не очень хорошее решение, но оно должно сработать.
Так что после большого прочтения кажется, что эта проблема известна основной команде dotnet, но не является приоритетом (если они когда-нибудь это исправят).
Теперь я попытался сделать это, не заставляя вас устанавливать что-то новое на ваш компьютер, но полагаться только на команды cmd
Шаг 1.
Запустите процесс, используя START
> START "" cmd.exe /C dotnet <mydll> <MyUniqueIdentifier>
Пример.
> START "" cmd.exe /C dotnet HelloWorld.dll HelloWorldProgram
Шаг 2.
Приведенный ниже код можно запустить в пакетном скриптенайти идентификатор процесса указанной программы
@echo off
set DLL_NAME=HelloWorld.dll
set UNIQUE_ID=HelloWorldProgram
FOR /f "delims=" %%a IN ('wmic process WHERE COMMANDLINE^="dotnet %DLL_NAME% %UNIQUE_ID%" list full ^| findstr /I "^ProcessId"') DO (
SET P=%%a
)
REM Here we have the Process ID
SET DNETP=%P:~10%
REM Terminate the proces
taskkill /PID %DNETP% /F