2011-09-30 37 views
4

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

所以我的问题是:有没有什么办法让一个给定的文件复制到一个给定的位置,当一个VSIX项目安装?

回答

4

仅使用VSIX,不,没有。

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

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

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

相关问题