4

我正在开发一个 Visual Studio 2010 扩展(VSIX 项目)来为实体框架设计器中的实体添加一些额外的属性。除了为 MEF 发现注册适当的类之外,我还希望在%ProgramFiles%\ Microsoft Visual Studio 10.0\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\Templates\Includes安装扩展程序时将 T4 包含文件复制到文件夹中,但我不知道该怎么做,而且 VSIX 属性页面似乎没有显示任何选项。

所以我的问题是:有没有办法在安装 VSIX 项目时将给定文件复制到给定位置?

4

1 回答 1

5

仅使用 VSIX,不,没有。

VSIX 包的全部内容在安装过程中只是简单地解压缩到您的本地扩展目录中 - 这就是关于文件安装的 END。

无论您想在任何地方复制什么,都必须在 VSIX 安装程序之外处理它。例如 - 使用不同的安装程序。或者,另一个例子,在你的插件第一次运行时,在 package.Initialize() 的某个地方,检查有问题的文件是否存在于正确的位置,如果不存在 - 将它们复制到那里。

当然,如果你想写入 ProgramFiles 目录,你面前还有另一个障碍:UAC 保护。要写在那里,您将需要另一个可执行文件,您的插件将在海拔高度运行(并在此期间向用户询问许可等),并且只有它才能将文件复制到那里。好吧,当然,除非你愉快地假设每个人总是“以管理员身份”运行他们的 VisualStudio,而只是忽略 UAC 和用户的眼泪。

于 2012-04-10T12:15:52.800 回答