Inno Setup ...如果没有以管理员身份运行,app会无声崩溃

时间:2010-03-29 16:10:05

标签: windows-vista inno-setup

我构建了一个小安装程序,它安装到程序文件中。我运行安装程序,一切都很好,运行已安装的.exe,它就消失了。我想在Vista中提供EXE管理员启动权并运行。但为什么需要呢?这不可能是正常的吗?

3 个答案:

答案 0 :(得分:4)

可能是您的应用程序崩溃,与Inno Setup完全无关。请记住,如果您的应用程序已安装到Program Files,它可以读取但无法在没有管理员权限的情况下修改安装目录中的文件。

您应该使用AppData\Roaming文件夹。也许你的应用程序在写入文件时遇到未处理的异常而拒绝访问它?

修改

要让Inno删除安装目录的限制权限,请将以下内容添加到Inno安装脚本中:

[Dirs]
Name: "{app}\"; Permissions: everyone-modify

答案 1 :(得分:1)

您使用的是哪种版本的Inno Setup?

http://www.vincenzo.net/isxkb/index.php?title=Vista_considerations

这表明您至少需要5.3.7才能进行标准用户安装。它还定义了您可以和不能为标准用户安装程序执行哪些操作。

答案 2 :(得分:1)

如果您的应用程序需要完全管理员权限才能正常运行,您可以考虑将清单文件与可执行文件捆绑在一起,其中包含:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <v3:trustInfo xmlns:v3="urn:schemas-microsoft-com:asm.v3">
    <v3:security>
      <v3:requestedPrivileges>
        <v3:requestedExecutionLevel level="highestAvailable"/>
      </v3:requestedPrivileges>
    </v3:security>
  </v3:trustInfo>
</assembly>

这可以通过许多IDE相当容易地完成,但如果您已经拥有可执行文件并且只想将清单文件与其关联,this article描述了这样做的最佳实践。