关于如何部署和共享VSTO解决scheme的最佳内容

通过基于办公室的解决scheme(特别是Excel)来推动视觉工作室和网点的发展,最好的文章或信息是关于如何让办公用品具有额外的二进制文件和程序集。

  1. 这个外部代码是否与电子表格打包在一起
  2. 如果人们开始通过电子邮件发送电子表格怎么办? 这个额外的程序集是否有任何开销? 二进制文件是否存在与电子表格分离的风险?

看起来微软已经推出VSTO超过5年了,但你读了很多混合的评论和问题。 我们是否在那些做大型VBA excel解决scheme的公司可以完全迁移到dotnet而没有任何实际的担忧?

首先,我想回答你的问题,VSTO是否准备好更大的实现。 答案是肯定的! 特别是如果替代scheme是VBA。 您可以使用整个.Net框架,可以使用Web服务,ADO.Net(更好的方法是使用企业库)。 你仍然可以编写看起来很像VBA的代码,但function更强大。 您可以通过阅读演练:为Excel创build首个文档级自定义来获取更多信息。 这个页面会给你一个VSTOfunction可用的概念。

现在,回答你的部署问题。

这取决于您是在制作外接程序还是在文档级定制。 如果它是一个加载项,那么你必须将其安装在每个客户端上,并且任何文件传递都不会影响(加载项在应用程序级别,而不是在单个文档级别)。

我假设你正在讨论一个文档级别的定制,所以我将围绕这个问题来回答我的答案。

在创build文档级定制时,程序集不会加载到Excel文件中(就像使用VBA一样)。 而是添加一个文档属性,告诉应用程序这个文档包含一个清单文件(并告诉清单文件的位置)。 清单文件包含组成自定义的程序集的链接。

与任何.Net应用程序一样,有时还需要部署其他(引用的)程序集。 这些程序集并不总是在GAC中,所以它们必须位于与执行程序集相同的文件夹中(在本例中为您的定制程序集)。 不过你不一定要把你的程序集放在与你的excel文件相同的位置。

有几种方法可以部署自定义 。

  1. 您可以将所有程序集和excel文件存储在一个文件夹中,并以这种方式运行应用程序(如果excel文件传递,用户必须传递整个文件夹)。
  2. 您可以运行一个安装程序,将程序集安装到用户计算机上的特定文件夹,并在该位置指定清单(如果excel文件传递,用户还必须传递安装程序)。
  3. 您可以将程序集安装到networking位置,并在文档属性中指定清单和程序集都位于该networking位置(如果传递的是excel文件,则不需要传递任何东西 – 但是存在安全性需要设置的设置。阅读此页面了解更多信息)。

您决定这样做的任何方式, 这里是您需要阅读的页面 ,以了解启用定制的文档属性。

您需要确保所有用户都已安装了必备软件。 最简单的方法是给他们一个安装程序。 如果您为自定义创build安装项目,则可以设置引导程序以自动安装必备组件。 如果您使用ClickOnce安装定制,也可以执行此操作。 本页面将为您提供有关部署所需的全部信息。

以下是您需要查看的其他一些有用的链接:

  • Office解决scheme的应用程序清单(2007系统)
  • Office解决scheme的部署清单(2007系统)
  • Office解决scheme中的应用程序和部署清单

我希望这有帮助。 一旦你阅读了所有这些信息,我想你会同意VSTO是比VBA更好的select。 您只需仔细计划您的部署。

我创build了一个Excel加载项并将其部署到服务器。 然后我传递了两个链接,setup.exe文件和实际工作簿的链接。 工作簿文件从未更改 – 目的是打开并加载现在在用户的添加/删除程序中的加载项。 加载项本身会在启动时检查更新。

所以,如果他们开始通过电子邮件发送工作簿,太棒了! 我相信在理论上,如果缺失的话,工作簿会下载附件,但是我没有一个新的计算机来testing它。 如果没有,这只是一个简单的exe安装(无论如何将启动更新,所以过时不是问题)。

对于文档级部署,我推荐以下三个链接:

  1. https://msdn.microsoft.com/en-us/library/ms268758(v=vs.90).aspx

  2. https://msdn.microsoft.com/en-us/library/ff937654.aspx

  3. 如何分配Excel VSTO安装的组件位置?

与应用程序级别的解决scheme不同,文档级别具有2个特殊属性:_AssemblyLocation和_AssemblyName,表示* .vsto位置。 要通过安装path来设置这些属性,应该创build一个自定义操作项目来logging安装时的目标path,并与setup.exe一起打包。 然后你可以把你的excel文件放在任何地方(在本地机器上)并以正确的方式打开它。