安装VSIX项目时如何将文件复制到任意位置?

Kon*_*man 4 visual-studio-2010 vsix edmx-designer

我正在开发Visual Studio 2010扩展(VSIX项目)以向Entity Framework设计器中的实体添加一些额外的属性.除了为MEF发现注册适当的类之外,我想%ProgramFiles%\ Microsoft Visual Studio 10.0\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\Templates\Includes在安装扩展时将T4包含文件复制到该文件夹,但我不知道如何操作并且VSIX属性页似乎没有显示任何选择.

所以我的问题是:安装VSIX项目时,是否有任何方法可以将给定文件复制到给定位置?

que*_*atl 5

仅使用VSIX,不,没有.

VSIX软件包的全部内容在安装过程中只需解压缩到您的本地扩展目录中 - 这就是文件安装的结束.

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

当然,如果你想写入ProgramFiles目录,你面前还有另一个障碍:UAC保护.要在那里写,你将需要另一个可执行文件,你的插件将以高程运行(并在此期间要求用户获得许可等),它只能在那里复制文件.好吧,当然,除非你高兴地假设每个人都"以管理员身份"运行他们的VisualStudios,而忽略了UAC和用户的眼泪.