2009-06-10 50 views
46

Quiero ejecutar regasm.exe desde cmd. que está disponible en c: \ windows \ Microsoft.net \ Framework \ 2,057Cómo ejecutar regasm.exe desde la línea de comandos que no sea el símbolo del sistema de Visual Studio?

me gusta este c: \ regasm.exe

Da regasm no se reconoce como comando interno o externo.

Así que entendí que tengo que establecer la ruta para regasm.exe en la variable de entorno.

¿Para qué variable necesito establecer la ruta para ejecutar regasm como se describe arriba?

Respuesta

38

En símbolo del sistema:

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

Mejor aún: SET PATH "% PATH%;% SystemRoot% \ Microsoft.NET \ Framework \ v2.0.50727 " – Ries

+3

@CharlieSomerville ¿Podría arreglar el original? Es demasiado pequeño para que alguien más lo edite. –

+0

No pude hacer que esto funcione sin agregar iguales. Traté de editarlo, pero SO dijo que la edición era demasiado corta. 'SET PATH ="% PATH%;% SystemRoot% \ Microsoft.NET \ Framework \ v2.0.50727' – KevM

2

utilizo lo siguiente en un archivo por lotes:

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

Usted no necesidad el directorio en su camino. Podrías ponerlo en tu camino, pero no NECESITAS hacerlo.
Si llama regasm rara vez, o llamando desde un archivo por lotes, se puede encontrar que es más fácil de simplemente invocar regasm a través de la vía de acceso totalmente calificada en el exe, por ejemplo:

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

El problema es que su sistema operativo puede estar en winnt o en alguna otra carpeta en lugar de Windows, por lo que es mejor utilizar% systemroot % como las otras respuestas muestran – Alex

+0

sí, bastante bien. Solo estaba mostrando un ejemplo. (por ejemplo) – Cheeso

34

Como Cheeso dijo:

No necesita el directorio en su ruta. Podrías ponerlo en tu camino, pero no NECESITAS hacerlo. Si llama regasm rara vez, o llamando desde un archivo por lotes, se puede encontrar que es más fácil de simplemente invocar regasm a través de la vía de acceso totalmente calificada en el exe, por ejemplo:

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

+1

¿El pequeño cambio en la respuesta de Cheeso vale la pena por separado? – xehpuk

5

Puedo usar esto como evento posterior a la generación en Visual Studio:

Dependiendo de la versión de Visual Studio, utilice Ts las variables e medio ambiente en su lugar:

  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

Para el RegAsm de 64 bits.EXE tendrá que encontrar en algún lugar de esta manera:

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

Si creó el archivo DLL utilizando .NET 4.5, copiar y pegar este comando en la ventana de CMD

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

votan favor si funciona para usted . : D

0

Al arrastrar y soltar el dll en 'regasm' puede registrarlo. Puede abrir dos ventanas 'Window Explorer'. Uno contendrá el dll que desea registrar. La segunda ventana será la ubicación de la aplicación 'regasm'. Desplácese hacia abajo en ambas ventanas para que tenga una vista tanto de la dll como de 'regasm'. Ayuda a reducir el tamaño de las dos ventanas para que estén una al lado de la otra. Asegúrate de arrastrar el dll sobre el 'regasm' que está etiquetado como 'aplicación'. Hay varios archivos 'regasm', pero solo desea la aplicación.

1

Realmente no me gusta la codificación de las rutas para llegar a regasm, cuando instala una .Net nueva o la ejecuta en una máquina con una versión diferente, debe asegurarse de encontrar una versión de regasm. Aquí hay una solución para encontrar regasm.exe del más reciente .Net regasmo instalado.

Dentro de un archivo 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 

Fuera de un archivo bat (es decir, símbolo del sistema), sólo tiene que utilizar %a en lugar de %%a

Cuestiones relacionadas