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?

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top