簡體   English   中英

WiX Toolset PermissionEx問題-安裝后應用無法運行

[英]WiX Toolset PermissionEx Problem - App Does Not Run After Installation

我在Wpf / C#中有一個應用程序,並使用WiX工具集創建了一個安裝程序。 安裝程序可在所有經過測試的計算機上運行,​​並且不會顯示任何錯誤消息。 但是,在某些計算機上,即使使用管理員用戶,該應用程序也不會在安裝后運行。 我相信這是一些權限問題,但我不確定。 如何授予當前用戶權限?

更新:到目前為止,該問題僅發生在裝有Windows 10 Home的兩台計算機上。 我以為可能是我設置的InstallerVersion。

以下是最相關的代碼段。

任何幫助都非常歡迎。 謝謝。

<Product Id="{2A173950-... }"
       Codepage="UTF-8"
       Name="Xyz"
       Language="1033"
       Version="1.0"
       Manufacturer="Xyz Software"
       UpgradeCode="{8B843496-... }">

<Package InstallerVersion="301"
         Compressed="yes"
         InstallScope="perMachine"
         Manufacturer="Xyz Software"
         Description="Xyz Installer"
         Keywords="Practice,Installer,MSI"
         Comments="(c) 2018, Xyz Software" />

<Feature Id="ProductFeature" Title="Xyz Installer" Level="1">
  <ComponentGroupRef Id="ApplicationComponents" />
  <ComponentGroupRef Id="DataComponents" />
  <ComponentGroupRef Id="SavedFilesEmptyFolder" />
  <ComponentGroupRef Id="StartMenuComponents" />
  <ComponentGroupRef Id="DesktopComponents" />
</Feature>

<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
  <!--Program Files Folder-->
  <Directory Id="ProgramFilesFolder">
    <Directory Id="CompanyFolder" Name="Xyz Software" >
      <Directory Id="ApplicationFolder" Name="Xyz" >
        <Directory Id="DataFolder" Name="Data" >
          <Directory Id="SavedFilesFolder" Name="Saved Files" />
        </Directory>
      </Directory>
    </Directory>
  </Directory>
  <!--Start Menu-->
  <Directory Id="ProgramMenuFolder">
    <Directory Id="StartMenuFolder" Name="Xyz" />
  </Directory>
  <!--Desktop-->
  <Directory Id="DesktopFolder" Name="Desktop" />
</Directory>

<Fragment>
<ComponentGroup Id="ApplicationComponents" Directory="ApplicationFolder">
  <Component Id="CmpXyzExe" Guid="{1EA7372D-... }">
    <File Id="FilXyzExe" Source="Xyz.exe" KeyPath="yes" />
  </Component>
  <Component Id="CmpSetPermissionsApp" Guid="{36CDCE9A-... }" >
    <CreateFolder>
      <util:PermissionEx User="Administrators" GenericAll="yes" />
      <util:PermissionEx User="Users" GenericAll="yes" />
    </CreateFolder>
  </Component>
</ComponentGroup>

<ComponentGroup Id="DataComponents" Directory="DataFolder">
  <Component Id="CmpXyzDic" Guid="{A32B6F47-... }">
    <File Id="FilXyzDic" Source="Xyz.dic"  />
  </Component>
</ComponentGroup>


<Fragment>
<ComponentGroup Id="StartMenuComponents" Directory="StartMenuFolder">
  <Component Id="CmpStartMenuShortcuts" Guid="{818AD65E-... }">
    <CreateFolder />
    <Shortcut Id="SctApplication"
              Name="Xyz"
              Target="[ApplicationFolder]Xyz.exe" />
    <Shortcut Id="SctUninstall"
              Name="Uninstall Xyz"
              Description="Uninstalls Xyz and all of its components"
              Target="[System64Folder]msiexec.exe"
              Arguments="/x [ProductCode]" />
    <RemoveFolder Id="RmvStartMenuComponents"
                  On="uninstall" />
    <RegistryValue Root="HKCU"
                   Key="Software\Microsoft\Xyz"
                   Name="installed"
                   Type="integer"
                   Value="1"
                   KeyPath="yes" />
  </Component>
</ComponentGroup>

<Fragment>
<ComponentGroup Id="DesktopComponents" Directory="DesktopFolder">
  <Component Id="CmpDesktopShortcuts" Guid="{4FC34354-... }">
    <Shortcut Id="SctApplicationDesktop"
              Name="Xyz"
              Target="[ApplicationFolder]Xyz.exe" />
    <RemoveFolder Id="RmvDesktopComponents"
                  On="uninstall" />
    <RegistryValue Root="HKCU"
                   Key="Software\Microsoft\Xyz"
                   Name="installed"
                   Type="integer"
                   Value="1"
                   KeyPath="yes" />
  </Component>
</ComponentGroup>

權限 :如上所述,也許可以快速檢查一下權限是否正確應用,如下所述: 檢查權限

運行時相關性/要求 :如果這種情況在很少的計算機上發生,人們會認為原因是未滿足的運行時要求。 您確定在相關計算機上安裝了Visual Studio C ++運行時嗎? 還是其他一些運行時要求?

調試啟動問題 :對於調試,有一些較舊的答案。 現在我看着它們,它們是如此相似,以至於我需要停止以不同的風格重復自己:

過程 :簡而言之,我將嘗試確定是否缺少運行時。 您可以使用procmon.exedependency walker進行檢查。 您還可以使用上面描述的調試方法,在調試過程中生成調試二進制文件並在啟動過程中連接到二進制文件。 只要二進制文件完全脫離地面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM