如何为我的 VSPackage 授予管理员权限?

How to give Administrator Privileges to my VSPackage?

我为Visual Studio开发了一个VSPackage,需要复制一些文件到Visual Studio的安装路径

如果我 运行 Visual Studio 作为管理员(使用我安装的 VSPackage 时)。它可以毫无错误地复制文件。

当我 运行 Visual Studio 正常时,我得到 Access to the path ... is denied 错误。

问题

即使 Visual Studio 是 运行 普通用户,我如何才能将我的 VSPackage 授予管理员权限。

或者至少我怎样才能调用这样的东西:

您的程序包是 .dll(加载到进程上),而不是 .exe(进程),因此它不能拥有与其进程不同的权限(Visual Studio,即 devenv.exe).您的包可以做的是启动一个具有管理员权限的不同进程。看我的文章:

HOWTO: Launch a process with admin rights from a Visual Studio add-in on Windows Vista or higher.

也就是说,这种将文件复制到VS安装路径的做法是非常错误的。这应该由您的包 (.msi) 的设置来完成,而不是您的包。

一方面,如果安装后由包完成,用户可以拒绝提升提示,并且文件不会被复制,您的安装将不完整。如果没有这些文件,你的包 运行 能正常运行吗?

另一方面,如果用户拒绝安装包的提升提示,则根本不会安装,这是一种更干净的方法。