2012-01-27 13 views
5

MSDN indica que gacutil.exe is not safe to use for production servers. ¿Hay una razón legítima para esto o Microsoft está practicando un poco de CYA? ¿Es seguro ignorar esta advertencia? ¿O debería finalmente aprender a usar Microsoft Windows Installer 2.0?¿Es seguro instalar montajes de producción con gacutil.exe?

palabras exactas de MSDN:

Gacutil.exe es sólo para fines de desarrollo y no se debe utilizar para instalar los conjuntos de producción en la caché de ensamblados global.

+0

"no es seguro"? ¿Dónde aparece esa fraseología? –

+0

Lo siento. Supongo que estaba deduciendo un poco. Dijo que es solo para fines de desarrollo. Se agregó el lenguaje MSDN. – Jeff

+0

Ok, mejor. Solo quería verificar que era lo que decía, y no confundir a ningún lector futuro. :) –

Respuesta

5

Los elementos de la caché de ensamblados global se comparten entre los programas.

Cuando utiliza Gacutil para agregar un conjunto a la memoria caché, no habrá recuento de referencias de los elementos que dependen de ella. Por lo tanto, es posible que cuando utilice GacUtil/U para eliminar su biblioteca del caché, haya roto otros programas que dependen de él.

Por el contrario, Windows Installer 2.0 mantiene un recuento y solo eliminará las bibliotecas de la memoria caché de ensamblaje cuando ningún otro programa lo requiera.

+0

Esta respuesta respondió técnicamente mi pregunta mejor que la de Hans (aunque Hans leyó la pregunta y fue útil de esa manera). ¡Gracias! – Jeff

3

Esto se debe a que gacutil.exe no estará disponible en la máquina de destino. Es parte del SDK de Windows, la versión de .NET 4.0 se encuentra en C: \ Archivos de programa (x86) \ Microsoft SDKs \ Windows \ v7.0A \ Bin \ NETFX 4.0 Tools. Lo tiene en su máquina porque instaló Visual Studio.

Simplemente lo hace con un instalador. En un proyecto de instalación, haga clic con el botón derecho en el panel del sistema de archivos, agregue la carpeta especial y seleccione "Carpeta de caché de ensamblaje global". Y ponga la DLL allí.

+0

Otro buen punto. No había pensado en eso, pero se instala con VS, ¿no es así? –

+0

Sé que no estaba en la máquina de producción, pero como la extensión del shell me está dando problemas, pensé que podría copiarlo. – Jeff

+1

La extensión de shell ya no está disponible en .NET 4. También tenga en cuenta que el GAC se ha movido de c: \ windows \ assembly a c: \ windows \ microsoft.net \ assembly. –

Cuestiones relacionadas