【问题标题】:MSi installation Error微星安装错误
【发布时间】:2014-10-22 08:01:45
【问题描述】:

已使用 Wix 创建了 MSI。当我尝试安装它时,我收到以下错误。 “安装程序没有足够的权限访问此目录 c:\programfiles\AppTest。安装无法继续以管理员身份登录或联系您的系统管理员”。 我浏览了一些类似的帖子,但对我没有帮助。在我的代码下面。

<?xml version='1.0'?>
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>
<Product Name='AppTest' Id='*'enter code here
    UpgradeCode='{05E35D34-E7F6-4CED-BF86-B1747AE92E07}'
    Language='1033' Codepage='1252'
    Version='2.0.0.1'
    Manufacturer='LabView Inc' >

      <Package Id='*'
        Languages='1033'
        SummaryCodepage='1252'
        AdminImage='no'
        InstallerVersion='200'
        InstallPrivileges='elevated'
        Compressed='yes'
        ReadOnly='yes'
        ShortNames='yes'
        Comments='AppTest Installer Package'
        Description='AppTest Installer Package'
        Manufacturer='LabView Inc' />

        <Media Id='1' Cabinet='AppTest.cab' EmbedCab='yes' />

        <!--Directory structure-->
        <Directory Id='TARGETDIR' Name='SourceDir'>
            <Directory Id='ProgramFilesFolder'>
                <Directory Id="APPLICATIONROOTDIRECTORY" Name="AppTest"/>
            </Directory>
        </Directory>

    <!-- Adding Components-->

    <DirectoryRef Id="TARGETDIR">
        <Component Id="AppTest.dll" Guid="3947344C-8116-48FB-9F8A-080EA7D1ABAD">
        <File Id="AppTest.dll" Source="$(sys.CURRENTDIR)files\AppTest.dll" KeyPath="yes" Checksum="yes"/>
            <File Id="msvcp80.dll" Source="$(sys.CURRENTDIR)files\msvcp80.dll" />
            <File Id="atl80.dll" Source="$(sys.CURRENTDIR)files\atl80.dll"  />
            <File Id="msvcr80.dll" Source="$(sys.CURRENTDIR)files\msvcr80.dll"  />
            <File Id="Microsoft.VC80.ATL.manifes" Source="$(sys.CURRENTDIR)files\Microsoft.VC80.ATL.manifest" />
            <File Id="Microsoft.VC80.CRT.manifest" Source="$(sys.CURRENTDIR)files\Microsoft.VC80.CRT.manifest"  />
            <File Id="AppTest.inf" ReadOnly="yes" Source="$(sys.CURRENTDIR)files\AppTest.inf" />
        </Component>
    </DirectoryRef>


    <Feature Id="AppTestFeature" Title="AppTest" Level="1">
        <ComponentRef Id="AppTest.dll" />

    </Feature>


</Product>

【问题讨论】:

  • 您的安装程序尝试将文件写入“C:\Program Files”目录。默认情况下,仅允许管理员组的成员使用。此外,如果您启用了 UAC,并且您是管理员,则您的权限较低,您必须“以管理员身份运行”才能安装程序。
  • 我有管理员权限。
  • @bally 检查我的答案,你只是想安装在TARDETDIR(这是C :) 更改为APPLICATIONROOTDIRECTORY
  • 是的,我按照您的建议尝试了。它仅在 UAC 关闭时起作用。如果 UAC 为 ON,则会提示相同的错误。我需要安装 MSI 或者 UAC 是 ON/OFF。请分享您的想法。
  • @bally 您使用的是什么版本的 WiX?

标签: wix


【解决方案1】:

您应该删除 &lt;CreateFolder Directory='AppTest' /&gt; 并将代码更改为:

<DirectoryRef Id="APPLICATIONROOTDIRECTORY"> <!-- main folder ur app -->
        <Component Id="AppTest.dll" Guid="3947344C-8116-48FB-9F8A-080EA7D1ABAD">
            <File Id="AppTest.dll" Source="$(sys.CURRENTDIR)files\AppTest.dll" KeyPath="yes" Checksum="yes"/>
            <File Id="msvcp80.dll" Source="$(sys.CURRENTDIR)files\msvcp80.dll" />
            <File Id="atl80.dll" Source="$(sys.CURRENTDIR)files\atl80.dll"  />
            <File Id="msvcr80.dll" Source="$(sys.CURRENTDIR)files\msvcr80.dll"  />
            <File Id="Microsoft.VC80.ATL.manifes" Source="$(sys.CURRENTDIR)files\Microsoft.VC80.ATL.manifest" />
            <File Id="Microsoft.VC80.CRT.manifest" Source="$(sys.CURRENTDIR)files\Microsoft.VC80.CRT.manifest"  />
            <File Id="AppTest.inf" ReadOnly="yes" Source="$(sys.CURRENTDIR)files\AppTest.inf" />
        </Component>
    </DirectoryRef>

【讨论】:

  • 感谢您的回复,我按照建议修改了代码,但我仍然遇到同样的错误。
  • 我按照建议进行了更改,但 MSI 仅在 UAC 关闭时有效。但是我需要安装 MSi 或者 UAC 是开/关的。请提供您对如何实现它的想法。
  • 如果这是按机器安装,则将 InstallScope 设置为 perMachine,这可能无法解决问题,但如果这是目标,请明确设置。您是否在 UAC 系统上看到提升提示?假设安装用户是管理员,这是获得执行此操作权限的关键。安装不违反安全规则,安装用户必须具有管理员权限才能写入该 ProgramFiles 位置。
  • 不,我在安装 UAC 时没有收到任何 UAC 提示。
猜你喜欢
  • 2018-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-24
  • 2012-05-17
  • 1970-01-01
相关资源
最近更新 更多