How to run regasm.exe from command line other than Visual Studio command prompt?

后端 未结 10 1994
盖世英雄少女心
盖世英雄少女心 2020-12-08 02:40

I want to run regasm.exe from cmd. which is available in c:\\windows\\Microsoft.net\\framework\\2.057

I do like this c:\\ regasm.exe

It gives regasm is n

相关标签:
10条回答
  • 2020-12-08 02:41

    You don't need the directory on your path. You could put it on your path, but you don't NEED to do that.
    If you are calling regasm rarely, or calling it from a batch file, you may find it is simpler to just invoke regasm via the fully-qualified pathname on the exe, eg:

    c:\Windows\Microsoft.NET\Framework\v2.0.50727\regasm.exe   MyAssembly.dll
    
    0 讨论(0)
  • 2020-12-08 02:41

    If you created the DLL using .net 4.5 , then copy and paste this command on command prompt.

     %SystemRoot%\Microsoft.NET\Framework\v4.0.30319\regasm.exe MyAssembly.dll
    
    0 讨论(0)
  • 2020-12-08 02:41

    I use this as post-build event in Visual Studio:

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

    Depending on your Visual Studio version, use these environment variables instead:

    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
    0 讨论(0)
  • 2020-12-08 02:43

    I really dislike the hard coding of paths to get to regasm, when you install a new .Net or run on a machine with a different version, you need to ensure you find a version of regasm. Here's a solution to find the regasm.exe from the most current .Net installed regasm.

    Within a bat file:

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

    Outside of a bat file (i.e. command prompt), just use %a instead of %%a

    0 讨论(0)
  • 2020-12-08 02:48

    Like Cheeso said:

    You don't need the directory on your path. You could put it on your path, but you don't NEED to do that. If you are calling regasm rarely, or calling it from a batch file, you may find it is simpler to just invoke regasm via the fully-qualified pathname on the exe, eg:

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

    0 讨论(0)
  • 2020-12-08 02:48

    Execute only 1 of the below
    Once a command works, skip the rest/ below to it:

    Normal:

    %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
    

    Only if you face issues, use old version '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 
    

    Only if you built myTest.dll for 64bit Only, use 'Framework64' path:

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

    Note: 64-bit built dlls will not work on 32-bit platform.

    All options:

    See https://docs.microsoft.com/en-us/dotnet/framework/tools/regasm-exe-assembly-registration-tool

    0 讨论(0)
提交回复
热议问题