【发布时间】:2019-07-07 13:08:54
【问题描述】:
如果我想为各种 Office 应用程序部署加载项,有哪些选项?
我的Solution 可以包含多个 VSTO Projects 吗?例如,一个 Excel 插件、一个 Word 插件和一个 PowerPoint 插件。
我应该/需要将每个 AddIn 放在单独的 Solution 中吗?特别是如果我运行 Excel,然后在不关闭 Excel 的情况下运行 Word:我最终会得到两个不同的实例并行运行吗?
我的一些类被多个插件使用,所以将所有内容放在一个Solution 中会更方便。这也将使部署和更新更容易。但是,我总是可以在独立的 DLL Project 中导出类,并在每个 Solution 中引用该 DLL。
【问题讨论】:
-
这个问题可能过于宽泛且基于观点。 For example。谷歌将是一个更好的资源; SO 是针对特定问题的(尽管question help page 似乎不再能很好地解释这一点)。
-
Google 并不是很有用,因为大多数主题都提到在同一个解决方案中包含多个 Excel 项目以解决兼容性问题(一个 2010 项目和一个 2013-2016 项目)。在这里,我想知道我是否(以及如何)让 Excel 和 Word 一起生活和交流。我正在尝试定义我的 AddIn 的高级架构。欢迎使用两种解决方案或多合一解决方案的任何利弊。
-
通常情况下,关于最佳实践的问题过于固执己见,无法成为好的 SO 帖子。但是,要回答您是否可以在同一个解决方案中添加多个问题,我当然无法想象为什么不这样做,或者为什么不鼓励这样做。我以前从未创建过 VSTO 项目,所以我不是这方面的专家,但我认为它只是构建到一个 DLL,就像任何其他类库一样,所以很难想象为什么在同一个解决方案中会有多个一个问题。我不知道有哪些项目类型不允许使用多个相同类型。
-
对“最佳实践”的问题进行了轻微修改。但是我仍然卡住了。 @StevenDoggart,目前如果在同一个解决方案中,我无法让两个 VSTO 顺利运行。这是因为 VSTO 项目在由单独的应用程序(Office Word、Excel 等)调用的意义上是不同的。我不确定 Excel 启动时是如何进行调用的:例如,它调用的是解决方案还是项目?那么如果 Excel 处于打开状态并且我启动 Word,Word 是否能够接管对解决方案的至少一些控制,或者它是否会启动一个新实例?
-
VSTO 的一个关键功能是 Office 功能区。目前我无法让两个 Ribbons 一起工作,但这可能是由于一个单独的问题,为此我在这篇单独的帖子中提出了一个问题:stackoverflow.com/questions/54676630/…。实际上,在一个解决方案中包含 2 个 VSTO 意味着在创建解决方案后至少添加其中一个,这会导致上述帖子中提到的问题。