我有在2个它项目VS2010的解决方案 - 一个.NET 4的程序,并为它的安装。 安装程序仅仅是一个带有先决条件的简单安装项目 - .NET Framework 4中。
问题是,我需要安装的setup.exe始终以管理员身份运行,否则安装程序将在UAC下失效。 (它不提示我的默认权限提升。)
我试图把一个setup.exe.manifest(如下图所示)旁边的setup.exe以迫使它以管理员身份运行,但不幸的是Windows将忽略它,很可能是因为已经有本身嵌入的setup.exe中的另一个清单文件,它是设置为asInvoker而非requireAdministrator。
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
</asmv1:assembly>
我也尝试添加一个启动条件具有以下特性: -
(name): Elevated
Condition: Privileged
Message: This installation requires elevated permissions to continue.
这并不做任何事情无论是。
所以,任何人都可以请揭示如何解决这个问题光?
PS我知道你可以通过改变Setup.exe的兼容性设置解决此问题,但这是一个手动过程,无法通过自动生成过程(TFS)来完成。 此外,提供具有兼容性设置一个快捷方式也奇怪,因为没有在同一个文件夹中提供了一个快捷方式SETUP.EXE,更何况该快捷方式需要知道的setup.exe的确切路径提前。 (安装包将被到处移动)。
编辑:顺便说一下,我的问题是完全一样描述一个在这里 。 但不幸的是,被发现的那家伙没有解决方案和提问者只是采取了问他的客户手动使用以管理员身份运行 ,而这正是我想避免的。