instalación GAC sobre cada proyecto de construcción - cómo hacerlo de forma fiable
-
28-09-2019 - |
Pregunta
Me gustaría instalar el auto-mis montajes fiable de aplicación en el GAC cuando compilo mi aplicación utilizando Visual Studio. Me eventos pre-configuración y posterior a la generación hemos de acumulación de mi aplicación web.
Pre evento de construcción:
"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\gacutil.exe" /f /ul Uninstall.Gac.txt
Post caso de construcción:
"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\gacutil.exe" /f /il Install.Gac.txt
%windir%\system32\inetsrv\appcmd.exe recycle apppool -apppool.name:"Sharepoint IIS WebApps"
Como se puede ver también estoy reciclaje de mi grupo de aplicaciones web para las nuevas asambleas para empezar a trabajar.
El problema que estoy teniendo es que este es un proceso muy poco fiable. En caso de que mi aplicación web falla, mi próxima construcción fallará porque desinstalación fallará (posterior a la generación no se ha ejecutado en la acumulación anterior) ... etc.
Me gustaría hacer este proceso culo más fiable posible. Me gustaría condicionalmente desinstale y ensamblados si están presentes y por la fuerza instalan sin importar si existe o no son ... Pero pre-construcción evento sigue siendo importante para la siguiente razón:
Importante
Es importante que todos mis montajes se desinstalan por completo antes de construcción se lleva a cabo, de lo contrario no están copiados al directorio de salida (ya que los hallazgos del compilador en GAC GAC) de ahí instalación falla ya que no puede encontrar asambleas en la salida \ bin carpeta.
¿Cómo debo hacer fiable GAC desinstalación e instalación en mi construcción de aplicaciones web?
Solución
En lugar onrelying en la herramienta gacutil, ¿no podría programar GAC instalar / desinstalar? Con el código, al menos podrías depender de códigos de error HRESULTS y reaccionar en consecuencia.
La información sobre la API GAC se puede encontrar aquí:
http://blogs.msdn.com/ b / Junfeng / archivo / 2004/09/14 / 229649.aspx
Otros consejos
Si la generación tiene éxito, copiar los módulos de salida a otro directorio e instalar en GAC desde allí. Y en pre-construcción utilizar este directorio para eliminar estos conjuntos de GAC.
De esta manera no debe ser nunca más los ensamblados en GAC durante la compilación. Se pueden ajustar el posterior a la generación de copiar los binarios sólo si todos ellos fueron construidos con éxito mediante la verificación en el archivo por lotes si todos los archivos de salida existe.