Frage

Ich mag zuverlässig automatisch installiert meiner Anwendung Assemblys im GAC, wenn ich meine Anwendung mit Visual Studio zu kompilieren. Ich habe Setup Pre- und Post-Build-Ereignisse in meiner Web-Anwendung zu bauen.

Pre Buildereignis:

"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\gacutil.exe" /f /ul Uninstall.Gac.txt

Post Buildereignis:

"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"

Wie Sie sehen, ich bin das Recycling auch meinen Web-Applikations-Pools für die neuen Baugruppen zu arbeiten.

Das Problem, das ich habe, ist, dass dies ein sehr unzuverlässiger Prozess. Im Falle fehlschlägt meine Web-Anwendung, meine nächsten Build fehl, weil Deinstallation fehl (Post-Build haben auf vorherigen Build nicht ausgeführt) ... usw.

Ich möchte diesen Prozess ass zuverlässig wie möglich machen. Ich möchte bedingt zu deinstallieren und Baugruppen, wenn sie vorhanden sind, und installieren Sie mit Gewalt, egal ob sie da sind oder nicht ... Aber Pre-Build-Ereignis ist immer noch wichtig für den nächsten Grund:

Wichtig

Es ist wichtig, dass alle meine Baugruppen vollständig deinstalliert werden, bevor Build stattfindet, sonst sind sie zu meinem Ausgabeverzeichnis nicht kopiert (da Compiler findet sie in GAC) daher GAC installiert werden kann, da es nicht Baugruppen in der Ausgabe finden \ Binärordner.

Wie soll ich sicher tun GAC Deinstallation und Installation auf meiner Web-Anwendung zu bauen?

War es hilfreich?

Lösung

Statt auf dem Werkzeug gacutil onrelying, konnte nicht Sie programmieren GAC Installation / Deinstallation? Mit Code, könnte man zumindest stützen sich auf HRESULTs Fehlercodes und entsprechend reagieren.

Informationen über den GAC-API finden Sie hier:

http://blogs.msdn.com/ b / Junfeng / Archiv / 2004/09/14 / 229649.aspx

Andere Tipps

Wenn die Erstellung erfolgreich ist, kopieren Sie die Ausgabe-Baugruppen in ein anderes Verzeichnis installieren und in GAC von dort. Und in Pre-Build Sie mit diesem Verzeichnis dieser Baugruppen aus GAC zu entfernen.

Auf diese Weise sollte es nie irgendwelche Versammlungen in GAC während der Kompilierung sein. Sie können die Post-Build zwicken die Binärdateien nur dann, wenn alle von ihnen wurden erfolgreich durch die Überprüfung in Batch-Datei erstellt zu kopieren, wenn alle Ausgabedateien vorhanden sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top