在不安装的情况下使用VSTO自定义

时间:2014-02-25 14:21:16

标签: vsto

我有一个VSTO文档级自定义,最初使用VS2005,VSTO 2005 SE和Excel 2003构建。在该配置中,我从VS2005发布了自定义,将其复制到用户PC上我想要的位置,然后运行我开发的一个工具,它正确设置了CAS策略,并使用ServerDocument类将自定义添加到用户的工作簿。然后,用户可以重新启动Excel,打开工作簿并运行自定义。我们可以将新版本的自定义复制到同一位置,并在下次用户打开工作簿时使用。

我现在已升级到(喘气!)VS2008,VSTO 3.0和Excel 2007.我重新设计了自定义策略工具,以便它可以与新版本的VSTO一起使用。我仍然可以将自定义附加到工作簿,但是在首次打开工作簿时,它似乎将自定义“安装”到用户的AppData \ Local \ Apps文件夹中。当我们想要稍后更新自定义时,这会引起相当大的麻烦。这也会更改AppDomain.CurrentDomain\BaseDirectory

的值

VSTO 3.0中有没有办法回到以前的工作方式,而无需将自定义安装到Apps文件夹?

1 个答案:

答案 0 :(得分:2)

据我了解,微软在VS2008中将VSTO转移到使用ClickOnce进行部署,使用Authenticode进行代码访问安全性(CAS)。

但是,您可以通过将|vstolocal标记附加到自定义工作簿文件的_AssemblyLocation自定义属性值来避免ClickOnce。此|vstolocal根据this VSTO Team blog post on deploying VSTO add-ins to everyone on a machine指示“VSTO从安装文件夹运行解决方案”

VSTO加载程序从CAS策略更改为Authenticode也可能会影响您对程序集的签名。