每个构建的GAC安装 - 如何可靠地进行

我想在使用Visual Studio编译应用程序时可靠地在GAC中自动安装我的应用程序集。我在我的Web应用程序的构建中设置了构建前和构建后事件。 预建活动:
"C:Program Files (x86)Microsoft SDKsWindowsv7.0ABinNETFX 4.0 Toolsgacutil.exe" /f /ul Uninstall.Gac.txt
发布后事件:
"C:Program Files (x86)Microsoft SDKsWindowsv7.0ABinNETFX 4.0 Toolsgacutil.exe" /f /il Install.Gac.txt
%windir%system32inetsrvappcmd.exe recycle apppool -apppool.name:"Sharepoint IIS WebApps"
正如您所看到的,我还在回收我的Web应用程序池,以便新程序集开始工作。 我遇到的问题是这是一个非常不可靠的过程。如果我的Web应用程序失败,我的下一个版本将失败,因为卸载将失败(后期构建未在以前的版本上运行)...等等。 我想尽可能让这个过程变得可靠。我想条件卸载和组装,如果它们存在并强行安装,无论它们是否存在......但是预构建事件对于下一个原因仍然很重要: 重要 在构建之前完全卸载所有程序集是很重要的,否则它们不会被复制到我的输出目录(因为编译器在GAC中找到它们),因此GAC安装失败,因为它无法在output bin文件夹中找到程序集。 我应该如何在我的Web应用程序构建中可靠地执行GAC卸载和安装?     
已邀请:
而不是依赖GACUTIL工具,你不能编写GAC安装/卸载程序吗?使用代码,您至少可以依赖于hresults错误代码并做出相应的反应。 有关GAC API的信息,请访问: http://blogs.msdn.com/b/junfeng/archive/2004/09/14/229649.aspx     
如果构建成功,请将输出程序集复制到另一个目录并从那里安装到​​GAC中。在预构建中使用此目录从GAC中删除这些程序集。 这样在编译期间GAC中永远不应该有任何程序集。只有在所有输出文件都存在的情况下,通过在批处理文件中进行验证,才能调整后期构建以复制二进制文件。     

要回复问题请先登录注册