WiX安装后,我的exe文件无法通过双击运行,只能以管理员身份运行

时间:2018-09-19 10:29:54

标签: visual-studio installation wix

当我将这个MSI软件包安装到%ProgramFiles%并为桌面文件夹创建快捷方式时,我会用WiX准备一个MSI安装项目,它只能以管理员身份运行。双击时不起作用。当我在桌面上安装文件夹时,双击即可使用。我想安装到%ProgramFiles%并双击。请帮助我,我花了2周的时间进行安装。

我的代码在这里。

<Product Id="*" Name="FlowNet Master" Language="1033" Version="1.0.0.2" 
         Manufacturer="Melina-Aero" UpgradeCode="PUT-GUID-HERE">
    <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" Platform='x64'  />

<Icon Id="icon.ico" SourceFile="Images\Splash Screen.jpg" />
<Property Id="ARPPRODUCTICON" Value="icon.ico" />
<!--    <Property Id="MSIUSEREALADMINDETECTION" Value="1" />-->

<WixVariable Id="WixUIBannerBmp" Value="Images\Banner.bmp" />
<WixVariable Id="WixUIDialogBmp" Value="Images\Background.bmp" />
<WixVariable Id="WixUILicenseRtf" Value="Licences\EULA.rtf" />
<Property Id="AllUSERS" Value="1"/>
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER2"/>
<UIRef Id="WixUI_InstallDir"/>

<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<MediaTemplate EmbedCab="yes" />

1 个答案:

答案 0 :(得分:1)

高权限 :在 %ProgramFiles% 下安装的文件对于标准用户将为只读 (以及管理员,除非您通过 UAC提示提升权限)。您必须确定您的应用程序正在执行哪些操作,要求对该文件夹下安装的文件具有写访问权限-或是否尝试向注册表中的HKLM写入-这将导致相同的问题(访问被拒绝的异常)。您的应用程序还可能尝试执行某些操作,这些操作要求某些NT Privileges仅对管理员用户可用-导致需要提升权限(特权与访问权限-ACL不同,因为它在整个系统中普遍存在,而不是“附加到对象上-例如“更改系统时间”-缺少更好的例子。

移动文件 There are several ways to fix this access problem (or work around it),但建议使用的文件很少。我建议您移动设置文件,该文件会导致用户配置文件出现异常,并在其中存储具有完全写访问权限的设置。您还可以将自定义ACL权限应用于已安装的文件(请参见上面链接中的第6 部分),但这并不是一个好主意,原因有很多(安全性,保存设置)等)。请参阅上面的链接,以获取有关替代方法的进一步说明(数据库中的存储设置以及启动时的访问权限和其他方法)。


检查清单 :这是a generic check list for application launch problems

附加调试器 :我有时使用的一种技术是将调试二进制文件安装到 %ProgramFiles% ,然后显示一个消息框立即从发射序列开始(如果发射距离太远)。然后,将Visual Studio调试器附加到消息框,然后从已安装的产品开始交互式调试,以检查错误和异常。 Procedure summarized here

  

免责声明:尽管很明显,但必须提及:切勿在实际发行版中使用调试二进制文件 1) 完全不合法,由于透明性, 2) 并不是一个好主意   调试二进制文件以及对调试二进制文件进行反向工程的可能性,并且 3) 调试运行时二进制文件将不存在于非开发人员的机器上(并且不要尝试进行静态链接-如果在调试中可能的话)模式)。最后:它   混乱时可能很容易忘记使用发行版二进制文件进行重建   像这样调试。肯定会发生。

依赖项扫描 :您可以使用许多工具来扫描可能导致启动问题的依赖项问题。 Here is a dependency scanning tools list。也许还要检查“ Visual Studio模块视图”部分。我不确定该视图是否会向您显示正在使用哪些设置文件(或仅加载了哪些二进制文件)。


某些链接