Ok, sé que esto es bastante específico, pero perdí todo mi día de trabajo así que realmente necesito una explicación racional, así que mi jefe y mi esposa no despedirme
RegAsm regfile switch no da la misma salida que Codebase Switch
de acuerdo con MSDN:
el interruptor /regfile
"genera el archivo .reg especificado para el montaje de"
el interruptor /codebase
"crea una entrada de código base en el registro especificando la ruta del archivo para un conjunto de"
Supuse que eran 2 maneras diferentes de hacer el lo mismo. La verdad era que yo estaba equivocado:
MÉTODO 1
C:\>"C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe" "C:\SERVER.dll" /regfile
Registry script 'C:\SERVER.reg' generated successfully
Reg salida del archivo:
REGEDIT4
[HKEY_CLASSES_ROOT\xfeed.server.X]
@="SERVER.XLS"
[HKEY_CLASSES_ROOT\xfeed.server.X\CLSID]
@="{8F4A5B5E-8DD7-30A3-993F-18C7E2C457CF}"
[HKEY_CLASSES_ROOT\CLSID\{8F4A5B5E-8DD7-30A3-993F-18C7E2C457CF}]
@="SERVER.XLS"
[HKEY_CLASSES_ROOT\CLSID\{8F4A5B5E-8DD7-30A3-993F-18C7E2C457CF}\InprocServer32]
@="mscoree.dll"
"ThreadingModel"="Both"
"Class"="SERVER.XLS"
"Assembly"="SERVER, Version=1.0.0.0, Culture=neutral, PublicKeyToken=6e3de07ee666a5f5"
"RuntimeVersion"="v2.0.50727"
[HKEY_CLASSES_ROOT\CLSID\{8F4A5B5E-8DD7-30A3-993F-18C7E2C457CF}\InprocServer32\1.0.0.0]
"Class"="SERVER.XLS"
"Assembly"="SERVER, Version=1.0.0.0, Culture=neutral, PublicKeyToken=6e3de07ee666a5f5"
"RuntimeVersion"="v2.0.50727"
[HKEY_CLASSES_ROOT\CLSID\{8F4A5B5E-8DD7-30A3-993F-18C7E2C457CF}\ProgId]
@="xfeed.server.X"
[HKEY_CLASSES_ROOT\CLSID\{8F4A5B5E-8DD7-30A3-993F-18C7E2C457CF}\Implemented Categories\ {62C8FE65-4EBB-45E7-B440-6E39B2CDBF29}]
MÉTODO 2
Pero cuando ejecuto el comando interruptor de código base directamente en lugar de utilizar el archivo reg, las teclas afectadas en el r egsitry son diferentes (y el trabajo, por el contrario de la salida anterior)
C:\>"C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe" "C:\SERVER.dll" /codebase
Types registered successfully
ouptut del registro con el código base:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{8F4A5B5E-8DD7-30A3-993F-18C7E2C457CF}]
@="SERVER.XLS"
[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{8F4A5B5E-8DD7-30A3-993F-18C7E2C457CF}\Implemented Categories]
[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{8F4A5B5E-8DD7-30A3-993F-18C7E2C457CF}\Implemented Categories\{62C8FE65-4EBB-45e7-B440-6E39B2CDBF29}]
[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{8F4A5B5E-8DD7-30A3-993F-18C7E2C457CF}\InprocServer32]
@="mscoree.dll"
"ThreadingModel"="Both"
"Class"="SERVER.XLS"
"Assembly"="SERVER, Version=1.0.0.0, Culture=neutral, PublicKeyToken=6e3de07ee666a5f5"
"RuntimeVersion"="v2.0.50727"
"CodeBase"="file:///C:/SERVER.DLL"
[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{8F4A5B5E-8DD7-30A3-993F-18C7E2C457CF}\InprocServer32\1.0.0.0]
"Class"="SERVER.XLS"
"Assembly"="SERVER, Version=1.0.0.0, Culture=neutral, PublicKeyToken=6e3de07ee666a5f5"
"RuntimeVersion"="v2.0.50727"
"CodeBase"="file:///C:/SERVER.DLL"
[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{8F4A5B5E-8DD7-30A3-993F-18C7E2C457CF}\ProgId]
@="xfeed.server.X"
Como se puede notar, las cosas se encuentra ahora en la Wow6432Node y las informaciones son mucho más exhaustivas (notablemente CodeBase !!!)
Si alguien pudiera darme una razón racional para esto, entonces podría evitar mencionar la actividad paranormal como causa de una jornada laboral perdida, estaría muy agradecido
tuve un problema al registrar ensamblados que era debido al uso de la RegAsm de 32 bits en lugar de la versión de 64 bits. Intente registrarlo con ambas herramientas, usando el mismo parámetro/Codebase y vea si eso ayuda. –
¿Una razón para qué? Esto es todo normal. Use/codebase en su máquina dev y reproduzca archivos .reg en el registro con la versión correcta de regedit.exe. c: \ windows \ syswow64 \ regedit.exe para un servidor COM de 32 bits. Un pequeño punto en el uso de un regfile que no sea iniciar un instalador. –
@HansPassant: Hay un punto usando regfile ya que quería crear una instalación explícita una secuencia de comandos en lugar de llamar RegAsm en las máquinas cliente para su despliegue, además, quería saber exactamente lo que estaba generando entradas de registro "código base". –