Как запустить regasm.exe из командной строки, отличной от командной строки Visual Studio? - PullRequest
47 голосов
/ 10 июня 2009

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

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

Дает Регазм не распознается как внутренняя или внешняя команда .

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

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

Ответы [ 10 ]

40 голосов
/ 10 июня 2009

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

SET PATH = "%PATH%;%SystemRoot%\Microsoft.NET\Framework\v2.0.50727"
36 голосов
/ 04 сентября 2009

Как сказал Чизо:

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

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

16 голосов
/ 10 июня 2009

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

c:\Windows\Microsoft.NET\Framework\v2.0.50727\regasm.exe   MyAssembly.dll
15 голосов
/ 31 июля 2014

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

 %SystemRoot%\Microsoft.NET\Framework\v4.0.30319\regasm.exe MyAssembly.dll
7 голосов
/ 05 марта 2010

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

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

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

  1. Visual Studio 2008: VS90COMNTOOLS
  2. Visual Studio 2010: VS100COMNTOOLS
  3. Visual Studio 2012: VS110COMNTOOLS
  4. Visual Studio 2013: VS120COMNTOOLS
  5. Visual Studio 2015: VS140COMNTOOLS
  6. Visual Studio 2017: VS150COMNTOOLS
2 голосов
/ 10 июня 2009

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

path = %path%;C:\Windows\Microsoft.NET\Framework\v2.0.50727
regasm httpHelper\bin\Debug\httpHelper.dll /tlb:.\httpHelper.tlb /codebase
pause
1 голос
/ 28 февраля 2017

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

В файле летучей мыши:

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

0 голосов
/ 27 июля 2018

Выполнить только 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

0 голосов
/ 18 сентября 2015

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

0 голосов
/ 03 июня 2014

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

c:\Windows\Microsoft.NET\Framework64\version_number_stuff\regasm.exe
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...