2014-10-22 170 views
0

已經使用Wix創建了MSI。當我嘗試安裝它時,出現以下錯誤。 「安裝程序沒有足夠的權限訪問此目錄c:\ programfiles \ AppTest。安裝無法以管理員身份繼續登錄或與系統管理員聯繫」。 我經歷了一些類似的帖子,但它並沒有幫助我。在我的代碼中。MSi安裝錯誤

<?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> 

+0

你的安裝程序會嘗試將文件寫入到 「C:\ Program Files文件」 目錄。默認情況下,只允許管理員組的成員。另外,如果啓用了UAC,並且您是管理員,則您已降低權限,並且必須以「管理員身份運行」來安裝程序。 – 2014-10-22 08:05:30

+0

我有管理員權限。 – bally 2014-10-22 08:07:00

+0

@bally檢查我的答案,你只是想安裝在'TARDETDIR'(這是C:\)改爲'APPLICATIONROOTDIRECTORY' – Buzka91 2014-10-22 08:10:03

回答

0

您應該刪除<CreateFolder Directory='AppTest' />和更改代碼這樣:

<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> 
+0

謝謝你的回覆我修改了代碼建議,但我仍然得到相同的錯誤。 – bally 2014-10-22 09:07:24

+0

我根據建議進行了更改,但MSI僅在UAC關閉時起作用。但是我需要安裝MSi,或者UAC打開/關閉。請提供你的想法如何實現它。 – bally 2014-10-22 10:10:42

+0

@bally [查看本文](http://csi-windows.com/blog/all/27-csi-news-general/335-how-to-silence-the-uac-prompt-for-per-machine -msi-packages-for-non-admins) – Buzka91 2014-10-22 10:35:29