wake-up-neo.net

Wie Ausführen von Regasm.exe von Befehlszeile anders als Visual Studio-Eingabeaufforderung?

Ich möchte regasm.exe von cmd ausführen. Welches ist in c:\windows\Microsoft.net\framework\2.057 verfügbar

Ich mag dieses c:\regasm.exe

Es gibt Regasm wird nicht als interner oder externer Befehl erkannt .

Also habe ich verstanden, dass ich den Pfad für regasm.exe in der Umgebungsvariablen setzen muss.

Für welche Variable muss ich den Pfad einstellen, um Regasm wie oben beschrieben auszuführen?

47
Cute

In der Eingabeaufforderung:

SET PATH = "%PATH%;%SystemRoot%\Microsoft.NET\Framework\v2.0.50727"
40

Wie Cheeso sagte:

Sie benötigen das Verzeichnis nicht in Ihrem Pfad. Sie könnten es auf Ihren Weg bringen, aber Sie MÜSSEN es nicht tun. Wenn Sie Regasm selten oder von einer Batchdatei aus aufrufen, ist es möglicherweise einfacher, Regasm über den vollständig qualifizierten Pfadnamen in der Exe aufzurufen, z. B .:

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

36
Ries

Sie müssen nicht brauchen das Verzeichnis in Ihrem Pfad. Sie könnten es auf den Weg bringen, aber Sie brauchen das nicht.
Wenn Sie Regasm selten oder von einer Batchdatei aus aufrufen, ist es möglicherweise einfacher, Regasm über den vollständig qualifizierten Pfadnamen der Exe aufzurufen, z.

c:\Windows\Microsoft.NET\Framework\v2.0.50727\regasm.exe   MyAssembly.dll
16
Cheeso

Wenn Sie die DLL mit .net 4.5 erstellt haben, kopieren Sie diesen Befehl und fügen Sie ihn an der Eingabeaufforderung ein.

 %SystemRoot%\Microsoft.NET\Framework\v4.0.30319\regasm.exe MyAssembly.dll
13
Edwin Ikechukwu

Ich verwende dieses als Post-Build-Ereignis in Visual Studio:

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

Verwenden Sie abhängig von Ihrer Visual Studio-Version stattdessen diese Umgebungsvariablen:

  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
7
Unrumpf

Ich verwende Folgendes in einer Batchdatei:

path = %path%;C:\Windows\Microsoft.NET\Framework\v2.0.50727
regasm httpHelper\bin\Debug\httpHelper.dll /tlb:.\httpHelper.tlb /codebase
pause
2
Patrick

Ich mag die harte Codierung von Pfaden nicht, um auf Regasm zuzugreifen. Wenn Sie ein neues .Net installieren oder auf einem Computer mit einer anderen Version ausführen, müssen Sie sicherstellen, dass Sie eine Version von Regasm finden. Hier finden Sie eine Lösung, um die Datei "regasm.exe" aus dem Verzeichnis zu finden aktuellstes .Net Installierte Regasm.

Innerhalb einer Bat-Datei:

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

Verwenden Sie außerhalb einer bat-Datei (d. H. Eingabeaufforderung) einfach %a anstelle von %%a.

1
Scott C

Durch Ziehen und Ablegen der DLL in 'Regasm' können Sie sie registrieren. Sie können zwei Fenster-Explorer-Fenster öffnen. Eine enthält die DLL, die Sie registrieren möchten. Das zweite Fenster ist der Ort der Anwendung 'Regasm'. Scrollen Sie in beiden Fenstern nach unten, so dass Sie sowohl die DLL als auch 'Regasm' sehen können. Es hilft, die Größe der beiden Fenster zu verringern, sodass sie nebeneinander liegen . Ziehen Sie das dll über dem 'regasm', der als 'application' bezeichnet wird. Es gibt mehrere "Regasm" -Dateien, aber Sie möchten nur die Anwendung.

0
OldProgrammer

Für die 64-Bit-Datei "RegAsm.exe" müssen Sie sie wie folgt finden:

c:\Windows\Microsoft.NET\Framework64\version_number_stuff\regasm.exe
0
Jiminion

Führe nur einen der folgenden Schritte aus
.__ Wenn ein Befehl ausgeführt wird, überspringen Sie den Rest/darunter:

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

Verwenden Sie nur bei Problemen die alte 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 

Verwenden Sie den Pfad 'Framework64' nur, wenn Sie myTest.dll für 64bit Only erstellt haben:

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

Hinweis: 64-Bit-DLLs funktionieren auf 32-Bit-Plattformen nicht.

Alle Optionen:

Siehe https://docs.Microsoft.com/de-de/dotnet/framework/tools/regasm-exe-Assembly-registration-tool