Cum să executați regasm.exe din linia de comandă, altul decât promptul de comandă Visual Studio? (Programare, .Net, C++, Visual C++, Linie De Comandă, Sistem De Operare)

Drăguț a intrebat.

Vreau să execut regasm.exe din cmd. care este disponibil în c:windowsMicrosoft.netframework2.057

Îmi place acest c:\ regasm.exe

Acesta oferă regasm nu este recunoscut ca fiind o comandă internă sau externă.

Așa că am înțeles că trebuie să setez calea pentru regasm.exe în variabila de mediu.

Pentru care variabilă trebuie să setez calea pentru a rula regasm așa cum am descris mai sus?

10 răspunsuri
laș anonim

În promptul de comandă:

SET PATH = "%PATH%;%SystemRoot%Microsoft.NETFrameworkv2.0.50727"

Comentarii

  • Mai bine: SET PATH „%PATH%;%SystemRoot%Microsoft.NETFrameworkv2.0.50727” –  > Por Ries.
  • @CharlieSomerville Ai putea să repari originalul? Este prea mic pentru a fi editat de altcineva. –  > Por Carl Onager.
  • Nu am reușit să fac să funcționeze acest lucru fără a adăuga un egal. Am încercat să o editez, dar SO a spus că editarea este prea scurtă. SET PATH = "%PATH%;%SystemRoot%Microsoft.NETFrameworkv2.0.50727 –  > Por KevM.
Ries

Așa cum a spus Cheeso:

Nu ai nevoie de directorul de pe calea ta. Ai putea să-l pui pe calea ta, dar nu ai NEVOIE să faci asta. Dacă apelați regasm rar sau îl apelați dintr-un fișier batch, s-ar putea să considerați că este mai simplu să apelați regasm prin intermediul numelui de cale complet calificat pe exe, de ex:

%SystemRoot%.Microsoft.NETFrameworkv2.0.50727regasm.exe MyAssembly.dll

Comentarii

  • Mica modificare la răspunsul lui Cheeso merită un răspuns separat? –  > Por xehpuk.
Cheeso

Tu nu nevoie de de directorul din calea ta. Ai putea să-l pui în calea ta, dar nu e NEVOIE să faci asta.
Dacă apelați regasm rar sau îl apelați dintr-un fișier batch, s-ar putea să considerați că este mai simplu să apelați regasm prin intermediul numelui de cale complet calificat pe exe, de exemplu:

c:WindowsMicrosoft.NETFrameworkv2.0.50727regasm.exe   MyAssembly.dll

Comentarii

  • Problema este că sistemul de operare ar putea fi în winnt sau în alt dosar în loc de Windows, așa că este mai bine să folosiți %systemroot%, așa cum arată celelalte răspunsuri.  > Por Alex.
Edwin O.

Dacă ați creat DLL-ul folosind .net 4.5 , atunci copiați și lipiți această comandă pe promptul de comandă.

 %SystemRoot%Microsoft.NETFrameworkv4.0.30319regasm.exe MyAssembly.dll

Unrumpf

Folosesc acest lucru ca eveniment post-construcție în Visual Studio:

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

În funcție de versiunea Visual Studio, utilizați în schimb aceste variabile de mediu:

  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

Patrick

Eu folosesc următoarele într-un fișier batch:

path = %path%;C:WindowsMicrosoft.NETFrameworkv2.0.50727
regasm httpHelperbinDebughttpHelper.dll /tlb:.httpHelper.tlb /codebase
pause

Scott C

Nu-mi place deloc codificarea dură a căilor de acces pentru a ajunge la regasm, atunci când instalați un nou .Net sau rulați pe o mașină cu o versiune diferită, trebuie să vă asigurați că găsiți o versiune de regasm. Iată o soluție pentru a găsi regasm.exe de la cel mai actual .Net instalat regasm.

În cadrul unui fișier bat:

for /f %%a in ('dir %windir%Microsoft.NetFrameworkregasm.exe /s /b') do set currentRegasm="%%a"
%currentRegasm% "fullpathtoyour.dll" /options

În afara unui fișier bat (adică în cadrul promptului de comandă), utilizați pur și simplu %a în loc de %%a

Jiminion

Pentru RegAsm.exe pe 64 de biți, va trebui să-l găsiți undeva în acest fel:

c:WindowsMicrosoft.NETFramework64version_number_stuffregasm.exe

OldProgrammer

Prin glisarea și plasarea dll-ului pe ‘regasm’ îl puteți înregistra. puteți deschide două ferestre ‘Window Explorer’. Una va conține dll-ul pe care doriți să îl înregistrați. Cea de-a doua fereastră va conține locația aplicației ‘regasm’. Derulați în jos în ambele ferestre astfel încât să aveți o vedere atât a dll-ului, cât și a ‘regasm’.Este util să reduceți dimensiunea celor două ferestre astfel încât să fie una lângă alta.Asigurați-vă că trageți dll-ul peste ‘regasm’ care este etichetat ‘application’. Există mai multe fișiere ‘regasm’, dar dumneavoastră doriți doar aplicația.

Manohar Reddy Poreddy

Executați doar 1 dintre următoarele
Odată ce o comandă funcționează, săriți peste restul / de mai jos la ea:

Normal:

%SystemRoot%Microsoft.NETFrameworkv4.0.30319RegAsm.exe myTest.dll
%SystemRoot%Microsoft.NETFrameworkv4.0.30319RegAsm.exe myTest.dll /tlb:myTest.tlb
%SystemRoot%Microsoft.NETFrameworkv4.0.30319RegAsm.exe myTest.dll /tlb:myTest.tlb /codebase

Numai dacă întâmpinați probleme, utilizați versiunea veche ‘v2.0.50727’:

%SystemRoot%Microsoft.NETFrameworkv2.0.50727RegAsm.exe myTest.dll
%SystemRoot%Microsoft.NETFrameworkv2.0.50727RegAsm.exe myTest.dll /tlb:myTest.tlb
%SystemRoot%Microsoft.NETFrameworkv2.0.50727RegAsm.exe myTest.dll /tlb:myTest.tlb 

Numai dacă ați construit myTest.dll doar pentru 64bit, utilizați calea ‘Framework64’:

%SystemRoot%Microsoft.NETFramework64v4.0.30319RegAsm.exe myTest.dll
%SystemRoot%Microsoft.NETFramework64v2.0.50727RegAsm.exe myTest.dll

Notă: dll-urile construite pe 64 de biți nu vor funcționa pe platforma pe 32 de biți.

Toate opțiunile:

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