2009-06-10 46 views
46

Voglio eseguire regasm.exe da cmd. che è disponibile in c: \ windows \ Microsoft.net \ Framework \ 2.057Come eseguire regasm.exe dalla riga di comando diversa dal prompt dei comandi di Visual Studio?

mi piace questo c: \ regasm.exe

regasm non è riconosciuto come comando interno o esterno.

Quindi ho capito che ho bisogno di impostare il percorso per regasm.exe nella variabile di ambiente.

Per quale variabile devo impostare il percorso per eseguire il regasmo come descritto sopra?

risposta

38

Nel prompt dei comandi:

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

Meglio ancora: SET PATH "% PATH%;% SystemRoot% \ Microsoft.NET \ Framework \ v2.0.50727 " – Ries

+3

@CharlieSomerville Potresti semplicemente correggere l'originale? È troppo piccolo per essere modificato da qualcun altro. –

+0

Non ho potuto farlo funzionare senza aggiungere un uguale. Ho provato a modificarlo ma SO ha detto che la modifica era troppo corta. 'SET PATH ="% PATH%;% SystemRoot% \ Microsoft.NET \ Framework \ v2.0.50727' – KevM

2

Io uso il seguente in un file batch:

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

non si necessità la directory sul vostro cammino. Potresti metterlo sul tuo percorso, ma non hai BISOGNO di farlo.
Se si chiama regasm raramente, o chiamando da un file batch, si possono trovare è più semplice invocare solo regasm tramite il percorso completamente qualificato sul exe, ad esempio:

c:\Windows\Microsoft.NET\Framework\v2.0.50727\regasm.exe MyAssembly.dll 
+0

Il problema è che il tuo sistema operativo potrebbe trovarsi in Winnt o qualche altra cartella invece di Windows, quindi è meglio usare% systemroot % come le altre risposte mostrano – Alex

+0

sì, proprio bene. Stavo solo mostrando un esempio. (es.) – Cheeso

34

Come Cheeso ha detto:

Non è necessaria la directory sul percorso. Potresti metterlo sul tuo percorso, ma non hai BISOGNO di farlo. Se si chiama regasm raramente, o chiamando da un file batch, si possono trovare è più semplice invocare solo regasm tramite il percorso completamente qualificato sul exe, ad esempio:

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

+1

La piccola modifica alla risposta di Cheeso vale un altro? – xehpuk

5

io uso questo come evento post-generazione in Visual Studio:

a seconda della versione di Visual Studio, utilizzare thes variabili e ambiente invece:

  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

Per RegAsm a 64 bit.Exe hai bisogno di trovare un posto come questo:

c:\Windows\Microsoft.NET\Framework64\version_number_stuff\regasm.exe 
11

Se avete creato la DLL utilizzando .net 4.5, copia e incolla questo comando su finestra CMD

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

Gentilmente votare se funziona per voi . : D

0

Trascinando e rilasciando la DLL su "regasm" è possibile registrarlo. È possibile aprire due finestre "Window Explorer". Uno conterrà la DLL che desideri registrare. La seconda finestra sarà la posizione dell'applicazione "regasm". Scorri verso il basso in entrambe le finestre in modo da avere una visione sia della dll che del "regasm". Aiuta a ridurre le dimensioni delle due finestre in modo che siano affiancate. Assicurati di trascinare la dll sul 'regasm' che è etichettato 'applicazione'. Esistono diversi file 'regasm' ma si desidera solo l'applicazione.

1

Non mi piace davvero l'hard coding dei percorsi per arrivare al regasma, quando installi un nuovo .Net o esegui su una macchina con una versione diversa, devi assicurarti di trovare una versione di regasm. Ecco una soluzione per trovare il regasm.exe dal più corrente .Net regshs installato.

All'interno di un file 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 

Al di fuori di un file bat (prompt cioè dei comandi), basta usare %a invece di %%a

Problemi correlati