推动利用Visual Studio和dotnet以及基于办公室的解决方案,尤其是excel,哪里有关于如何使用附加二进制文件和程序集的办公表单的最佳文章或信息是可共享的。
看起来好像microsoft has been pushing VSTO for over 5 years now,但您阅读了大量混合评论和问题。我们是否正处于那些拥有大型VBA excel解决方案的公司可以完全迁移到dotnet而没有任何真正的担忧?
答案 0 :(得分:24)
首先,我想回答一下您的问题,即VSTO是否已准备好进行更大规模的实施。答案是肯定的!特别是如果替代品是VBA。您可以使用整个.Net框架,您可以使用Web服务ADO.Net(更好的是,使用企业库)。您仍然可以编写看起来很像VBA的代码,但功能更强大。您可以通过阅读Walkthrough: Creating Your First Document-Level Customization for Excel获取更多信息。 This page会让您了解可以使用的VSTO功能。
现在,回答有关部署的问题。
这取决于您是在制作加载项还是文档级自定义。如果是加载项,则必须在每个客户端上安装它,并且任何传递文档都不会影响(加载项在应用程序级别,而不是在单个文档级别)。
我假设您正在讨论文档级别的自定义,因此我将围绕这个问题集中讨论。
创建文档级自定义时,程序集不会加载到excel文件中(与VBA一样)。相反,添加了一个文档属性,告诉应用程序该文档包含一个清单文件(并告诉它清单文件的位置)。清单文件包含指向组成自定义的程序集的链接。
与任何.Net应用程序一样,有时也需要部署其他(引用的)程序集。这些程序集并不总是在GAC中,因此它们必须与执行程序集位于同一文件夹中(在本例中为自定义程序集)。但是,您不必将程序集放在与excel文件相同的位置。
您可以通过以下几种方式deploy the customization。
您决定执行此操作的任何方式{/ 3}},您需要阅读以了解启用自定义的文档属性。
您需要确保所有用户都已安装必备组件。最简单的方法是给他们所有的安装程序。如果为自定义创建安装项目,则可以设置引导程序以自动安装必备组件。如果使用here is the page安装自定义,也可以执行此操作。 ClickOnce将为您提供有关部署所需的所有信息。
以下是您需要查看的其他一些有用链接:
我希望这会有所帮助。一旦你阅读了所有这些信息,我想你会同意VSTO是一个比VBA更好的选择。您只需要仔细规划部署。
答案 1 :(得分:0)
我创建了一个Excel附加组件并将其部署到服务器上。然后我传递了两个链接,setup.exe文件和实际工作簿的链接。工作簿文件从未更改 - 其目的是打开并加载现在位于用户的“添加/删除程序”中的加载项。附加组件本身会在启动时检查更新。
因此,如果他们开始通过电子邮件发送工作簿,那太好了!我相信在理论上,工作簿会下载附件,如果它丢失了,但我没有新的计算机来测试它。如果没有,它只是一个简单的exe安装(无论如何都会在启动时更新,所以过时不是问题)。
答案 2 :(得分:0)
对于文档级部署,我建议使用以下三个链接:
https://msdn.microsoft.com/en-us/library/ms268758(v=vs.90).aspx
How do you assign the Assembly Location of an Excel VSTO Installation?
与应用程序级解决方案不同,文档级具有2个特殊属性:_AssemblyLocation和_AssemblyName,它们指示* .vsto位置。要通过安装路径设置这些属性,应创建自定义操作项目以在安装时记录目标路径,并与setup.exe一起打包。然后你可以把你的excel文件放在任何地方(在本地机器上)并以正确的方式打开它。