【问题标题】:VSTO with .NET Core 3.0带有 .NET Core 3.0 的 VSTO
【发布时间】:2019-12-06 10:52:10
【问题描述】:

我想知道 VSTO 是否适用于支持 COM 对象的新 .NET Core 3。可以使用 .Net Framework 创建项目,然后通过修改 .csproj 文件将其迁移到 .NET Core,但是否与 VSTO 兼容? 如果没有,是否有 .NET Core 3 中 VSTO 的替代方案?

【问题讨论】:

  • VSTO 用于创建“本机”插件以及在运行它们的 Office 应用程序提供的运行时上运行的插件。那就是 .NET 框架。鉴于基于 Javascript 的新 Office Addin architecture,我怀疑 VSTO 是否会支持 .NET Core。
  • VSTO 会继续在 .NET 中使用吗?

标签: .net vsto office-interop .net-core-3.0 c#-8.0


【解决方案1】:

目前似乎没有其他选择。有请求在未来将这种支持添加到 .Net 5 https://developercommunity.visualstudio.com/idea/757925/please-port-visual-studio-tools-for-office-vsto-to.html

目前的建议似乎是使用 Office JS 平台创建加载项。这些也将跨平台兼容 (https://blogs.msdn.microsoft.com/deva/2018/04/02/office-developer-difference-between-office-web-addin-vs-comvsto-addin)

【讨论】:

    【解决方案2】:

    VSTO 目前不支持 .Net 核心。
    但是,没有什么能阻止您通过实现一个公开 IDTEXtensibility2 接口的 COM 对象来创建基于纯 COM 的插件。
    问题是为什么需要单独使用 .Net Core 开发插件?您的插件将在安装了 Office 套件的计算机上运行,​​这意味着也将安装 .Net 运行时。

    【讨论】:

    • 在某些情况下.NET Core 功能可能更有用。例如,在我的一个VSTO 加载项中,我尝试使用File.WriteAllTextAsync 方法,但它不起作用,因为此方法仅在.NET Core 2.0 及更高版本中受支持。当然有替代品,但内置功能将是首选。
    【解决方案3】:

    基于 .NET 5 的示例实现和加载项(适用于 Visio,在 WIX 上设置) 应该编译并工作。

    向功能区添加一个可点击的按钮: https://github.com/nbelyh/VisioComAddinNet5

    这些步骤必须对所有办公应用程序通用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-20
      • 1970-01-01
      • 1970-01-01
      • 2020-02-29
      • 2021-06-17
      • 1970-01-01
      相关资源
      最近更新 更多