C# 以管理员身份运行WIX msi

C# 以管理员身份运行WIX msi,c#,visual-studio-2010,visual-studio,wix,C#,Visual Studio 2010,Visual Studio,Wix,我需要删除一个sqlite数据库文件夹。我已经编写了一个自定义操作,在InstallFinalize之后删除此文件夹。如果我以管理员权限从命令提示符运行MSI,它将删除该文件夹。否则,不会删除sqlite数据库文件夹 我在Product.wxs文件中添加了属性标记 <Property Id="MSIUSEREALADMINDETECTION" Value="1" /> 我还添加了InstallPrivileges=“elevated”。对我来说没有任何效果。我登录的windo

我需要删除一个sqlite数据库文件夹。我已经编写了一个自定义操作,在
InstallFinalize
之后删除此文件夹。如果我以管理员权限从命令提示符运行MSI,它将删除该文件夹。否则,不会删除sqlite数据库文件夹

我在Product.wxs文件中添加了属性标记

 <Property Id="MSIUSEREALADMINDETECTION" Value="1" />


我还添加了
InstallPrivileges=“elevated”
。对我来说没有任何效果。我登录的windows用户具有管理员权限。如果msi通过命令提示符以管理员身份运行,则“删除文件夹”可以工作。我需要以管理员身份打开安装程序。

我遇到了这个问题,可以使用自定义操作以管理员身份运行安装程序,您可以在安装程序开始时调用该操作。是我找到的解释解决方案的帖子。

如果我没有记错,即使MSI是以管理员权限安装的,默认情况下也不会使用管理员权限运行您的自定义操作。我相信您需要在
CustomAction
元素上设置
Impersonate=“yes”
。右键单击
msi
以管理员身份运行。还要检查和确认。UAC启用了吗?忽略我最后的评论,我似乎误解了你的问题:P@Sinatr右键单击msi,以管理员身份运行,删除sqllite文件夹。UAC已启用。MSIUSEREALADMINDETECTION与此无关。除非以管理员身份运行,否则InstallFinalize后不会提升您的级别,这是Windows Installer的工作方式。如果运行模拟为“是”的CA,则除非运行提升的MSI,否则不会提升CA。只有在InstallFinalize之前(以及InstallInitialize之后)以及在没有模拟的情况下延迟和运行时,才会提升您的级别。不幸的是,您可能会发现使用系统帐户运行的提升的自定义操作无法访问数据库,在这种情况下,您将无法执行当前正在执行的操作。