如何为我的VSPackage提供管理员权限?

时间:2015-07-03 19:01:31

标签: c# visual-studio visual-studio-extensions vspackage

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

如果我以管理员身份运行Visual Studio(使用我安装的VSPackage时)。它可以复制文件,没有错误。

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

问题

即使以普通用户身份运行Visual Studio,如何将VSPackage授予管理员权限。

或者至少我如何调用这样的东西:

enter image description here

1 个答案:

答案 0 :(得分:1)

您的包是一个.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)来完成,而不是通过你的包。

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

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