如何从Visual Studio命令提示符以外的命令行运行regasm.exe?
我想从cmd运行regasm.exe。 它在c:\ windows \ Microsoft.net \ framework \ 2.057中可用
我喜欢这个c:\ regasm.exe
它给予regasm不被认可为内部或外部命令 。
所以我明白,我需要在环境variables中设置regasm.exe的path。
对于哪个variables,我需要设置path来运行regasm,如上所述?
在命令提示符下:
SET PATH = "%PATH%;%SystemRoot%\Microsoft.NET\Framework\v2.0.50727"
像切索一样说:
你不需要path上的目录。 你可以把它放在你的道路上,但你不需要这样做。 如果您很less调用regasm,或者从batch file中调用regasm,则可能会发现通过exe上的全限定path名调用regasm会更简单,例如:
%SystemRoot% \ Microsoft.NET \ Framework \ v2.0.50727 \ regasm.exe MyAssembly.dll
你不需要path上的目录。 你可以把它放在你的道路上,但你不需要这样做。
如果您很less调用regasm,或者从batch file中调用regasm,则可能会发现通过exe文件上的全限定path名调用regasm会更简单,例如:
c:\Windows\Microsoft.NET\Framework\v2.0.50727\regasm.exe MyAssembly.dll
如果使用.net 4.5创buildDLL,请将该命令复制并粘贴到CMD窗口
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\regasm.exe MyAssembly.dll
请投票,如果它适合你。 :d
我在Visual Studio中将其用作生成后事件:
call "%VS90COMNTOOLS%vsvars32.bat" regasm $(TargetPath) /tlb
根据您的Visual Studio版本,请改用这些环境variables:
- Visual Studio 2008:
VS90COMNTOOLS
- Visual Studio 2010:
VS100COMNTOOLS
- Visual Studio 2012:
VS110COMNTOOLS
- Visual Studio 2013:
VS120COMNTOOLS
- Visual Studio 2015:
VS140COMNTOOLS
- Visual Studio 2017:
VS150COMNTOOLS
我在batch file中使用以下内容:
path = %path%;C:\Windows\Microsoft.NET\Framework\v2.0.50727 regasm httpHelper\bin\Debug\httpHelper.dll /tlb:.\httpHelper.tlb /codebase pause
我真的不喜欢硬编码的path,当你安装一个新的.Net或运行在不同版本的机器上时,你需要确保你find一个版本的regasm。 这里有一个解决scheme,从最新的.Net安装的regasm中findregasm.exe。
在一个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
对于64位RegAsm.exe,你需要find这样的地方:
c:\Windows\Microsoft.NET\Framework64\version_number_stuff\regasm.exe
通过将DLL拖放到“regasm”上,您可以注册它。 您可以打开两个“窗口资源pipe理器”窗口。 一个将包含你想注册的DLL。 第二个窗口将是“regasm”应用程序的位置。 在两个窗口中向下滚动,以便您可以看到dll和“regasm”。 这有助于减小两个窗口的大小,使它们并排。 一定要将DLL拖到标有“应用程序”的“regasm”上。 有几个“regasm”文件,但你只需要应用程序。