【发布时间】:2018-02-21 01:39:12
【问题描述】:
我有一个 Windows 窗体应用程序,它被部署到我们网络中的许多用户机器上。我们的一些用户使用 Excel 2010,一些使用 2013,其他用户使用 2016。
过去,我曾指示开发人员使用 Interop 版本 14 进行编译,以确保跨版本的互操作性。不幸的是,有几次,该请求没有得到满足,我们遇到了用户问题。
了解我不是唯一的编码,如何最好地确保在编译应用程序时,它是使用互操作版本 14 编译的。
我考虑过的一些选项包括:
- 在程序中添加一些东西来检查应用程序运行时的互操作,如果不是版本 14,则抛出错误。虽然是一种奇怪的方法,但它可以确保开发人员在使用错误的互操作版本时无法测试他们的代码
- 构建后事件。我不确定这是否正确,也不知道具体该怎么做。
寻找任何建议。谢谢。
【问题讨论】:
-
代码中的编译器指令。 #If...我已经忘记了这一点,直到我在自己的代码中遇到它。不知道它是否为您提供任何东西。只是一个想法,
-
您可以创建一个 Excel 项目模板,该模板将具有所需的参考,以使其对人们来说变得简单。您的应用程序是否配置为使用 GAC 的 PIA(自找麻烦)或嵌入自 VS2010 以来推荐的互操作类型?
-
@tntinmn - 如果我从一开始就重新设计...我根本不会使用互操作...寻找验证引用版本是否正确的解决方案
-
我问了一个非常基本的问题,即您是否嵌入互操作程序集,因为这会影响解决方案。我没有在哪里推荐重新设计(这是另一个人的回答),而是提供了一个想法,以防止在开发人员未采取明确行动的情况下对新项目进行不当引用。
-
误解了...不是嵌入...@TnTinMn
标签: excel vb.net office-interop