[英]How to run regasm.exe from command line other than Visual Studio command prompt?
我想从cmd运行regasm.exe。 可在c:\\ windows \\ Microsoft.net \\ framework \\ 2.057中找到
我喜欢这个c:\\ regasm.exe
它给予regasm不被认为是内部或外部命令 。
所以我明白我需要在环境变量中设置regasm.exe的路径。
如上所述,我需要为哪个变量设置运行regasm的路径?
在命令提示符下:
SET PATH = "%PATH%;%SystemRoot%\Microsoft.NET\Framework\v2.0.50727"
像Cheeso说:
您不需要路径上的目录。 你可以把它放在你的路上,但你不需要这样做。 如果您很少调用regasm,或者从批处理文件中调用它,您可能会发现通过exe上的完全限定路径名调用regasm更简单,例如:
%SystemRoot% \\ Microsoft.NET \\ Framework \\ v2.0.50727 \\ regasm.exe MyAssembly.dll
如果使用.net 4.5创建DLL,则在命令提示符下复制并粘贴此命令。
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\regasm.exe MyAssembly.dll
你并不需要您的路径上的目录。 你可以把它放在你的路上,但你不需要这样做。
如果您很少调用regasm,或者从批处理文件中调用它,您可能会发现通过exe上的完全限定路径名调用regasm更简单,例如:
c:\Windows\Microsoft.NET\Framework\v2.0.50727\regasm.exe MyAssembly.dll
我在Visual Studio中将其用作后期构建事件:
call "%VS90COMNTOOLS%vsvars32.bat"
regasm $(TargetPath) /tlb
根据您的Visual Studio版本,请改用以下环境变量:
VS90COMNTOOLS
VS100COMNTOOLS
VS110COMNTOOLS
VS120COMNTOOLS
VS140COMNTOOLS
VS150COMNTOOLS
我在批处理文件中使用以下内容:
path = %path%;C:\Windows\Microsoft.NET\Framework\v2.0.50727
regasm httpHelper\bin\Debug\httpHelper.dll /tlb:.\httpHelper.tlb /codebase
pause
我真的不喜欢硬编码路径来解决问题,当你安装新的.Net或在不同版本的机器上运行时,你需要确保找到一个版本的regasm。 installed regasm. 这是从安装的regasm中找到regasm.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,您需要在以下位置找到它:
c:\Windows\Microsoft.NET\Framework64\version_number_stuff\regasm.exe
通过将dll拖放到'regasm'上,您可以注册它。 您可以打开两个“Window Explorer”窗口。 一个将包含您要注册的DLL。 第二个窗口将是'regasm'应用程序的位置。 在两个窗口中向下滚动,以便您可以看到dll和'regasm'。 它有助于减小两个窗口的尺寸,使它们并排放置。 务必将dll拖到标有“application”的'regasm'上。 有几个'regasm'文件但你只想要应用程序。
仅执行以下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
仅当您为64位仅构建myTest.dll时,才使用“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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.