WiX Toolset PermissionEx问题-安装后应用无法运行 [英] WiX Toolset PermissionEx Problem - App Does Not Run After Installation
问题描述
我在Wpf / C#中有一个应用程序,并且使用WiX Toolset创建了一个安装程序。该安装程序可在所有经过测试的计算机上运行,并且不会显示任何错误消息。但是,在某些计算机上,即使使用管理员用户,该应用程序也不会在安装后运行。我认为这是一些权限问题,但不确定。如何授予当前用户权限?
I have an application in Wpf/C# and I created an installer with the WiX Toolset. The installer works on all tested computers, it does not display any error messages. However, on some machines, the application does not run after installation, even with an administrator user. I believe it's some permission problem, but I'm not sure. How do I give permissions to the current user?
更新:
到目前为止,该问题仅在装有Windows 10 Home的两台计算机上发生。我以为可能是我设置的InstallerVersion。
UPDATE: So far the problem has only occurred on two machines with Windows 10 Home. I thought it might be the InstallerVersion that I set.
以下是最相关的代码段。
Below are the most relevant code snippets.
任何非常欢迎您的帮助。谢谢。
Any help is very welcome. Thank you.
<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 ++运行时
吗?还是其他一些运行时要求?
Runtime Dependency / Requirement: If this happens on very few machines one would think the cause to be a runtime requirement that is not met. Are you sure you have the visual studio C++ runtime installed on the computers in question? Or some other runtime requirement?
调试启动问题 :有几个较旧的答案以及有关调试的建议。现在,我看着它们是如此相似,以至于我需要停止以不同的风格重复自己了:
Debugging Launch Issues: There are several older answers with suggestions on debugging. Now that I look at them they are so similar that I need to stop repeating myself in different flavors:
- 应用程序启动问题检查表 (想法列表)
- 启动调试二进制文件并附加调试器和依赖项扫描程序工具 (应将哪些winform项目文件打包到安装程序中)
- WiX服务安装的确切方式在内部工作?
- wi xc#应用程序在安装后无法启动
- Visual Studio安装程序在AspNetDiagnosticPack.msi上失败
- 尝试创建 uc.micro时,Windows中的安装过程无法访问被拒绝;文件夹
- 在用户文件夹中创建一个.config文件夹
- EXE文件不起作用
- Application Launch Issues Check List (list of ideas)
- Launch debug binaries and attach debugger - and dependency scanner tools (Which winform project files should be packed up into the installer)
- How exactly does the WiX 'Service Install' work internally?
- wix c# app doesn't launch after installing
- Visual Studio installer fails on AspNetDiagnosticPack.msi
- The setup process in windows fails access denied when trying to create "uc.micro" folder
- Create a .config folder in the user folder
- EXE file is not working
过程 :简而言之,我将尝试确定是否缺少运行时。您可以使用 procmon.exe
或 dependency walker
进行检查。您还可以使用上面描述的调试方法,在调试过程中生成调试二进制文件并在启动过程中连接到二进制文件。只要二进制文件完全脱离地面。
Procedure: In brief I would try to determine if there is a missing runtime. You can use procmon.exe
or dependency walker
to check for this. You can also use the debugging approach described above where you build debug binaries and connect to the binaries during launch. Provided the binary gets off the ground at all.
这篇关于WiX Toolset PermissionEx问题-安装后应用无法运行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!