我想从cmd运行regasm.exe。可在c:\ windows \ Microsoft.net \ framework \ 2.057
中找到我喜欢这个c:\ regasm.exe
它使 regasm不被识别为内部或外部命令。
所以我明白我需要在环境变量中设置regasm.exe的路径。
如上所述,我需要为哪个变量设置运行regasm的路径?
答案 0 :(得分:40)
在命令提示符中:
SET PATH = "%PATH%;%SystemRoot%\Microsoft.NET\Framework\v2.0.50727"
答案 1 :(得分:36)
您不需要路径上的目录。你可以把它放在你的路上,但你不需要这样做。 如果您很少调用regasm,或者从批处理文件中调用它,您可能会发现通过exe上的完全限定路径名调用regasm更简单,例如:
%SystemRoot% \ Microsoft.NET \ Framework \ v2.0.50727 \ regasm.exe MyAssembly.dll
答案 2 :(得分:16)
您不需要路径上的目录。你可以把它放在你的路上,但你不需要这样做。
如果您很少调用regasm,或者从批处理文件中调用它,您可能会发现通过exe上的完全限定路径名调用regasm更简单,例如:
c:\Windows\Microsoft.NET\Framework\v2.0.50727\regasm.exe MyAssembly.dll
答案 3 :(得分:15)
如果使用.net 4.5创建DLL,则在命令提示符下复制并粘贴此命令。
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\regasm.exe MyAssembly.dll
答案 4 :(得分:7)
我在Visual Studio中将其用作后期构建事件:
call "%VS90COMNTOOLS%vsvars32.bat"
regasm $(TargetPath) /tlb
根据您的Visual Studio版本,请改用以下环境变量:
VS90COMNTOOLS
VS100COMNTOOLS
VS110COMNTOOLS
VS120COMNTOOLS
VS140COMNTOOLS
VS150COMNTOOLS
答案 5 :(得分:2)
我在批处理文件中使用以下内容:
path = %path%;C:\Windows\Microsoft.NET\Framework\v2.0.50727
regasm httpHelper\bin\Debug\httpHelper.dll /tlb:.\httpHelper.tlb /codebase
pause
答案 6 :(得分:1)
我真的不喜欢硬编码的路径,当你安装新的.Net或在不同版本的机器上运行时,你需要确保找到一个版本的regasm。这是从最新.Net 安装的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
答案 7 :(得分:0)
对于64位RegAsm.exe,您需要在以下位置找到它:
c:\Windows\Microsoft.NET\Framework64\version_number_stuff\regasm.exe
答案 8 :(得分:0)
通过将dll拖放到'regasm'上,您可以注册它。 您可以打开两个“Window Explorer”窗口。一个将包含您要注册的DLL。第二个窗口将是'regasm'应用程序的位置。在两个窗口中向下滚动,以便您可以看到dll和'regasm'。 它有助于减小两个窗口的尺寸,使它们并排放置。 务必将dll拖到标有“application”的'regasm'上。有几个'regasm'文件但你只想要应用程序。
答案 9 :(得分:0)
仅执行以下其中一项
命令生效后,跳过下面的其余部分:
正常:
%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