Подтвердить что ты не робот

Как запустить regasm.exe из командной строки, отличной от командной строки Visual Studio?

Я хочу запустить regasm.exe из cmd. который доступен в c:\windows\Microsoft.net\framework\2.057

Мне нравится это c:\regasm.exe

Это дает regasm не распознается как внутренняя или внешняя команда.

Итак, я понял, что мне нужно установить путь для regasm.exe в переменной среды.

Для какой переменной мне нужно установить путь для запуска regasm, как описано выше?

4b9b3361

Ответ 1

В командной строке:

SET PATH = "%PATH%;%SystemRoot%\Microsoft.NET\Framework\v2.0.50727"

Ответ 2

Как сказал Cheeso:

Вам не нужен каталог на вашем пути. Вы можете поместить его на свой путь, но вам НЕ НУЖНО это сделать. Если вы редко вызываете regasm или вызываете его из командного файла, вы можете обнаружить, что проще просто вызвать regasm через полностью квалифицированный путь на exe, например:

% SystemRoot%\Microsoft.NET\Framework\v2.0.50727\regasm.exe MyAssembly.dll

Ответ 3

Вам не нужен каталог на вашем пути. Вы можете поместить его на свой путь, но вам НЕ НУЖНО сделать это.
Если вы редко вызываете regasm или вызываете его из командного файла, вы можете обнаружить, что проще просто вызвать regasm через полностью квалифицированный путь на exe, например:

c:\Windows\Microsoft.NET\Framework\v2.0.50727\regasm.exe   MyAssembly.dll

Ответ 4

Если вы создали DLL с помощью .net 4.5, скопируйте и вставьте эту команду в командную строку.

 %SystemRoot%\Microsoft.NET\Framework\v4.0.30319\regasm.exe MyAssembly.dll

Ответ 5

Я использую это как событие post-build в Visual Studio:

call "%VS90COMNTOOLS%vsvars32.bat"
regasm  $(TargetPath) /tlb

В зависимости от вашей версии Visual Studio вместо этого используйте эти переменные среды:

  • Visual Studio 2008: VS90COMNTOOLS
  • Visual Studio 2010: VS100COMNTOOLS
  • Visual Studio 2012: VS110COMNTOOLS
  • Visual Studio 2013: VS120COMNTOOLS
  • Visual Studio 2015: VS140COMNTOOLS
  • Visual Studio 2017: VS150COMNTOOLS

Ответ 6

Я использую следующее в пакетном файле:

path = %path%;C:\Windows\Microsoft.NET\Framework\v2.0.50727
regasm httpHelper\bin\Debug\httpHelper.dll /tlb:.\httpHelper.tlb /codebase
pause

Ответ 7

Мне очень не нравится жесткое кодирование путей, чтобы добраться до regasm, когда вы устанавливаете новую .Net или запускаете на машине с другой версией, вам нужно убедиться, что вы найдете версию regasm. Здесь находится решение найти regasm.exe из самой текущей .Net установленной regasm.

В файле bat:

for /f %%a in ('dir %windir%\Microsoft.Net\Framework\regasm.exe /s /b') do set currentRegasm="%%a"
%currentRegasm% "full\path\to\your.dll" /options

Вне файла bat (т.е. командной строки) просто используйте %a вместо %%a

Ответ 8

Для 64-разрядного RegAsm.exe вам нужно будет найти его в таком месте:

c:\Windows\Microsoft.NET\Framework64\version_number_stuff\regasm.exe

Ответ 9

Перетаскивая dll на "regasm" , вы можете зарегистрировать его. Вы можете открыть два окна Window Explorer. Один будет содержать dll, который вы хотите зарегистрировать. Второе окно будет расположением приложения "regasm" . Прокрутите вниз в обоих окнах, чтобы вы могли видеть как dll, так и "regasm" . Это помогает уменьшить размер двух окон, чтобы они были бок о бок. Обязательно перетащите DLL поверх "regasm" , помеченного как "приложение". Существует несколько файлов "regasm" , но вы хотите только приложение.

Ответ 10

Выполнить только 1 из следующих
Как только команда сработает, пропустите остальные/ниже:

Нормальный:

%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe myTest.dll
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe myTest.dll /tlb:myTest.tlb
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe myTest.dll /tlb:myTest.tlb /codebase

Только если у вас возникли проблемы, используйте старую версию v2.0.50727:

%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe myTest.dll
%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe myTest.dll /tlb:myTest.tlb
%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe myTest.dll /tlb:myTest.tlb 

Только если вы создали myTest.dll только для 64-битной версии, используйте путь Framework64:

%SystemRoot%\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe myTest.dll
%SystemRoot%\Microsoft.NET\Framework64\v2.0.50727\RegAsm.exe myTest.dll

Примечание: 64-битные dll не будут работать на 32-битной платформе.

Все варианты:

См. Https://docs.microsoft.com/en-us/dotnet/framework/tools/regasm-exe-assembly-registration-tool