Windows 7下的ClickOnce / Excel-VSTO

我们在VS2010中开发了一个.Net 4.0 VSTO Excel AddIn,我们通过ClickOnce来部署。 我们的部署在Windows XP上看起来很好,但是在Windows 7上安装的时候是非常有问题的。这些问题似乎都与当AddIn需要通过Excel删除的时候有关(例如,它被Excel软删除了[例如由于失败等],然后用户通过Excel | Options | AddIns | Manage | COM AddIns对话框将其删除。

上述情况导致发生上述情况后重新安装AddIn的情况,它不会在Excel中公开,即Excel AddIns选项卡(如果安装了一个或多个AddIns,通常会出现)将永久消失。 当我们正在开发/debugging时,它变得更加棘手,因为我们正在重新命名/移除AddIn实例 – 以至于在Windows 7上开发VSTO不再可行

请注意,AddIn 不在硬删除(禁用)列表中 – 它已被删除。 我已经尝试安装/重新安装/卸载,重新启动,删除registry项(清理caching/卸载后),从C:\ Documents and Settings \\ Local Settings \ Apps \ 2.0中删除文件系统文件,清除caching(通过法师和/或rundll32 清除.NET下载的应用程序caching没有法师? )。 XP和Windows 7之间的行为似乎有明显的差异。

有没有人有类似的问题?

我能看到的唯一的select是一个完全成熟的MSI的部署项目,但是这不是一个完美的地方 – 需要本地pipe理员访问等

非常感谢
特拉维斯

不知道您是否阅读过有关使用Clickonce发布Office解决scheme的教程。 如果你还没有,你可以通过下面的链接find它们。 值得一读。

http://msdn.microsoft.com/en-us/library/vstudio/bb772100(v=vs.100).aspx
http://msdn.microsoft.com/en-us/library/vstudio/bb608591(v=vs.100).aspx

关于使用Windows安装程序,这并不是特别困难,特别是使用Visual Studio 2010安装项目。 这里有一个非常详细的教程,可以指导你通过所有这些。 当我试图部署Excel加载项时,它帮了我很大的忙,我希望它能以某种方式帮助你。

http://msdn.microsoft.com/en-us/library/ff937654.aspx

另外,您也可以问自己这些问题,以确定是否使用Clickonce / Windows安装程序是正确的select。

当谈到您在部署技术中的select时,您不必仅限于一个选项。 关键是要为正确的工作select正确的工具。 虽然没有单一的规则或简单的答案,但您可以使用一些一般准则来帮助您针对特定需求做出最佳决策。

  • 应用程序是否安装了任何COM组件?
  • 应用程序是否需要为COM-Interop注册任何组件?
  • 应用程序是否安装了任何服务? 应用程序是否必须安装到特定位置或全局程序集caching(GAC)?
  • 应用程序是否具有基于操作系统或运行时环境的有条件安装的组件?
  • 应用程序在安装时是否需要用户input?
  • 应用程序是否需要configuration系统级服务,例如Active Directory或COM +?
  • 应用程序安装完成后,是否会创build文件,写入registry,或以某种方式影响系统,从而在删除应用程序时将资源留在后面?

如果对这些问题中的任何一个回答“是”,则Windows Installer是您的最佳select。 但是,如果您不需要解决上述列表中描述的情况,那么ClickOnce是您的部署解决scheme的理想select。 如果您想要利用ClickOnce提供的独特优势,那么在您的应用程序devisestream程早期就了解ClickOnce的function至关重要。 使用ClickOnce部署早期版本的应用程序,但是后来才意识到需要迁移到Windows Installer,这将创build一个艰难的升级path,可以通过仔细的前期规划来避免。

根据我的经验,在我的一个生产项目中,我们也使用了MSI。 而点击一次的问题则被避免了。 所以我的答案 – 是的,你需要有MSI项目或微星安装。 在MSI安装中,您可以使用默认的MSI Project或外部的,例如Wix或Wise Installer或其他。 使用自定义安装程序的第二种方法要困难得多。

对于删除的情况下,我使用了graphics和手动删除从caching和registry中的加载项。 它有帮助,但看起来像黑客。

另外每次处理VSTO ClickOnce的时候都不清楚,我以为用了一些外部库。 不幸的是,由于项目的要求,我没有这样的机会来使用第三方来使我的工作更容易。 但是你可以检查并尝试。 可能是Add-in-Express库会帮助你,特别是当他们有很好的技术支持的时候。

我们发现,在Windows 7上获取ClickOnce在VSTO上工作的方法是在Excel中执行此操作 – 即

  • 添加/删除程序:卸载
  • Excel | 选项| AddIns | COM | 走
  • 添加| 浏览到ClickOnce setup.exe | 好的| 等等
  • closuresExcel
  • 进入Excel
  • AddIn出现

我相信你可以玩添加/删除程序卸载(版本),所以用户不一定要手动卸载

ClickOnce是gr8时,它的作品 – 这是到达那里的旅程,需要收紧大风格