首页 文章

Windows 7下的ClickOnce / Excel-VSTO

提问于
浏览
2

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

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

请注意,AddIn不在硬删除(禁用)列表中 - 它已被删除 . 我已经尝试安装/重新安装/卸载,重新启动,删除注册表项(清理缓存/卸载后),从C:\ Documents and Settings \ Local Settings \ Apps \ 2.0中删除文件系统文件,清除缓存(通过mage和/或rundll32根据Clear the .NET-downloaded application cache without Mage?) . XP和Windows 7之间似乎存在明显的行为差异 .

有人有过类似的问题吗?

我能看到的唯一替代方案是一个带有完全成熟的MSI的部署项目,但这不是一个接近整齐的地方 - 需要本地管理员访问等

非常感谢
特拉维斯

3 回答

  • 1

    不确定您是否阅读过有关使用Clickonce发布Office解决方案的教程 . 如果还没有,可以通过以下链接找到它们 . 值得阅读 .

    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安装程序是正确的选择 .

    当您选择部署技术时,您不需要仅限于一个选项 . 关键是为正确的工作选择合适的工具 . 虽然没有单一的规则或简单的答案,但您可以使用一些通用指南来帮助您根据自己的特定需求做出最佳决策 .

    • 应用程序是否安装了任何COM组件?

    • 应用程序是否需要注册COM-Interop的任何组件?

    • 应用程序是否安装了任何服务?应用程序是否必须安装到特定位置或全局程序集缓存(GAC)?

    • 应用程序是否具有基于操作系统或运行时环境有条件安装的任何组件?

    • 应用程序在安装时是否需要用户输入?

    • 应用程序是否需要配置Active Directory或COM等系统级服务?

    • 安装应用程序后,是否会创建文件,写入注册表或以某种方式影响系统,以便在删除应用程序时留下资源?

    如果您对上述任何问题的回答都是肯定的,那么Windows Installer是满足您需求的最佳选择 . 但是,如果您不需要解决上面列表中描述的方案,则ClickOnce是您的部署解决方案的绝佳选择 . 如果您想利用ClickOnce提供的独特优势,那么在应用程序设计过程的早期了解ClickOnce的功能至关重要 . 使用ClickOnce部署早期版本的应用程序,但随后又意识到需要迁移到Windows Installer,这将创建一个难以通过仔细的前期规划来避免的升级路径 .

  • 1

    根据我的经验,在我的一个 生产环境 项目中,我们也使用了MSI . 并且避免了点击一次的问题 . 所以我的回答 - 是的,你需要安装MSI Project或MSI . 使用MSI安装,您可以使用默认MSI项目或外部,例如Wix或Wise Installer或其他东西 . 使用自定义安装程序的第二种方法要困难得多 .

    对于删除我使用过mage和手动从缓存和注册表中删除加载项的情况 . 它有所帮助,但看起来像黑客 .

    每次都是处理VSTO ClickOnce不清楚,我有机会使用第三方的东西,因为需要投影,我的工作更容易 . 但你可以检查并尝试 . 可能是Add-in-Express图书馆会帮助你,特别是当他们有良好的技术支持时 .

  • 0

    我们发现在Windows 7上让ClickOnce为VSTO工作的方法是在Excel中执行此操作 - 即

    • 添加/删除程序:卸载

    • Excel |选项| AddIns | COM |走

    • 添加|浏览到ClickOnce setup.exe |好的等等

    • 关闭Excel

    • 进入Excel

    • AddIn出现

    我确信您可以使用添加/删除程序卸载(版本控制),因此用户不一定必须手动卸载

    当它运作时,ClickOnce就是gr8 - 这是一个到达那里的旅程,需要收紧大风格

相关问题