【问题标题】:VSTO Development - Key Improvements In VS2010 / .NET 4.0?VSTO 开发 - VS2010 / .NET 4.0 的主要改进?
【发布时间】:2010-03-29 14:44:03
【问题描述】:

我正试图向我的老板说明为什么我们应该将 VS2010 用于即将推出的 Excel 工作簿 VSTO 应用程序。我以前没有使用过 VSTO,但使用过 VBA。随着 2010 年即将到来,我想了解一下所做的改进,看看是否值得使用 2010 年来开发此应用程序。

到目前为止,我已经阅读了 2 个主要改进是 ease of deploymentsdebugging / com interop improvements ...

我只是想知道是否还有其他我不知道的事情,或者这里是否有人实际上在 VSTO 中进行开发并且使用过 2010 和 2008 并且可以帮助制作案例/用信息武装我。

我的老板主要关心的是在这里的 Citrix 服务器上部署 .NET 4.0 运行时......但是似乎使用 3.5,我们将不得不部署 VSTO 运行时和 PIA 等......所以真的不会使用 2010 部署更容易,因为仅安装 4.0 运行时比必须安装“VSTO 运行时”以及 PIA 等更好? 或者我在这里缺少什么?这里的任何人都在企业中部署 VSTO 应用程序并且可以谈论这个吗?

另外 - 我也在努力为这个应用程序使用 C# 而不是 VB.NET。 有谁知道为什么(除了我对语法偏好的偏见)最好使用 C# 而不是 VB 的任何关键原因? VB VSTO 开发中缺少任何关键功能吗? 我读过VSTO Power Tools,其中一个描述了 Excel 对象模型类的 LINQ enalbment - 但是它说“一组 C# 类”......有谁知道他们的字面意思是 C# - 所以这不适用于 VB.NET,或者他们只是表示代码是用 C# 编写的? 有人曾经在 VB 中使用过这些电动工具吗?我现在将下载并玩它,但非常感谢您再次提供帮助

非常感谢您提供任何信息。

【问题讨论】:

    标签: c# .net visual-studio-2010 .net-4.0 vsto


    【解决方案1】:

    将 VSTO 3.0 部署到企业:

    这没有什么特别棘手的。我肯定会建议您使用贵公司的打包系统(例如 Altiris 或 SCCM)进行部署。打包时确保添加 CustomInclusionList 项目(并根据 MSDN 文档对其进行自定义)+ 如果您有代码签名证书,则可以选择对您的程序集进行签名。

    如果您处于锁定环境中,您将需要打包技术以允许以管理员身份安装包。否则部署将是一场噩梦。 在让打包者重新创作由 Visual Studio 生成的包时要小心。您需要确保保留所有注册表项、自定义操作等 您可能会部署到 HKCU 配置单元,这意味着用户将无法自行卸载插件(除非他们是管理员)。

    请注意,如果用户在打开办公应用程序时收到提示,询问“您要安装/不安装此插件等”,那么 custominclusionlist 项目配置不正确或您缺少注册表项。

    在 Citrix 上:

    这似乎工作正常。主要是将 citrix 服务器完全更新到最新的 Office 版本,并在部署之前安装所有先决条件。如果您有一个维护良好的补丁系统,这将是微不足道的。正如另一位回答者所说,Citrix 没有什么特别之处。它可以正常工作,应该安装到 HKCU 以避免任何问题。

    VSTO 的 PowerToys:

    是的,这些都很棒。它们在 VB 或 C# 中同样适用。它们与语言无关,我认为您所指的陈述只是意味着它们是用 C# 编写的。 在部署时,请确保您在本地或 GAC 中包含扩展程序集。即使用户已经安装了 Office 2007 PIA 组件,它也不会安装到用户计算机上。

    关于在 VB.net 上使用 C#:

    没有评论!是的,我会选择 C#,虽然有些人抱怨它比 VSTO 项目的 VB 更冗长,但我认为其中大部分是遗留问题。寻找具有 30 个可选参数的非常糟糕的方法,您现在有多种处理方法。自己编写扩展方法,或者大部分时间使用 Excel.Extensions 和 Word.Extensions 命名空间可用的方法。您还可以在静态帮助程序类中编写重载,并仅使用您要使用的参数调用诸如 Open 之类的方法。 最终,您必须根据大多数程序员的优势以及您的组织在程序员资源方面的优势所在来做出决定。你可能是 C# 的大师,但如果其他 9 个人是 VB.net 专家,那么在 VB.net 中做项目是有意义的。仍然尝试转换它们,但真正的决定是技术主管/经理而不是代码猴子。

    【讨论】:

      【解决方案2】:

      我还没有使用 VS2010 进行 Office 开发,但我使用 VS2008 进行 Word 插件和 Ribbon,我使用了 VB.NET。

      部署都取决于您对安全性的严格程度。我在一个 USAF 站点上,它需要最高的安全设置,这需要签名的程序集,并且由于 VSTO 和 Office 的限制,需要使用 C++ 进行一些黑客攻击才能使事情完美运行。我听说他们在新版本中修复了大部分问题。

      我发现的另一个问题是当时没有VS2008/Office/Addins的书籍,这很困难。此外,网络上充斥着各种版本的 VSTO、Visual Studio 中的示例,这使得查找工作示例变得非常困难。

      VB 有一个优势,因为它支持可选参数。 C# 正在获取它们,不确定它们是否是 4.0。如果您在 VBA 或 VB 中有现有代码,我建议您继续使用 VB。 Power Tools 将支持两种语言。

      关于在 Citrix 上部署 .NET4.0;我看不出这是个问题,但我认为您确实需要使用那个特殊的安装程序配置文件登录。

      您可以构建一个小型原型来尝试一下......

      【讨论】:

      • 好答案。还有其他事情,更好地支持自定义任务窗格的设计器表面处理。在程序集中嵌入类型(意味着您可以删除额外的 PIA 依赖项)。
      【解决方案3】:

      我已获得部分 VSTO 插件,可与从 Citrix XenApp5 与 RES PowerFuse 一起运行的 Outlook 2007 一起使用。该插件由 Outlook 加载,并且从安全中心可见并处于活动状态。我学到的一件重要的事情是,您必须创建一个自定义安装程序,因为您需要将应用程序安装到本地计算机 HKLM,以便 Citrix 环境拾取 Office 插件。这看起来像是supported with Office 2010,并且有一个 Office 2007 的修补程序可以启用此功能(KB976811 可通过 KB976477 获得)。

      我仍在苦苦挣扎的问题是,当从 Citrix 运行时,Outlook 不会加载我们的自定义视图。该插件是构建在 PRISM 库之上的 WPF 应用程序

      【讨论】:

      • 也许将第二段变成一个单独的问题,以获得更好的答案。
      猜你喜欢
      • 2023-04-06
      • 2012-12-28
      • 2011-01-09
      • 1970-01-01
      • 1970-01-01
      • 2011-01-05
      • 2011-05-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多