带有 InstallShield 安装程序的桌面应用程序转换器 - W_DISCOVERED_EXE_NOT_FOUND

Desktop App Converter with InstallShield installer - W_DISCOVERED_EXE_NOT_FOUND

我正在尝试将我的桌面应用程序 Computator.NET(用 WinForms 编写)转换为 UWP,它使用 InstallShield 作为其安装程序,但 DAC 似乎找不到可执行文件。看起来它认为 exe 文件是一些临时安装程序文件。该过程的日志如下:

WARNING: DesktopAppConverter : warning 'W_PACKAGE_DEPENDENCY_ADDED': A dependency on framework package 'Microsoft.VCLibs.140.00.UWPDesktop' was added to the AppxManifest.xml. See 'http://go.microsoft.com/fwlink/?LinkId=821959' for guidance on installing the package prior to local deployment. Otherwise, if this is in error, remove the corresponding entry from Dependencies in the AppxManifest.xml before packaging and deploying your application. WARNING: DesktopAppConverter : warning 'W_DISCOVERED_EXE_NOT_FOUND': Discovered shortcut indicates the app executable should be '\WINDOWS\Installer{FA089B43-0451-420A-968B-DCC3C55644C7}_8C37B49DBB16422C8EF917F2AEA02293.exe', but this file cannot be found. WARNING: DesktopAppConverter : warning 'W_DISCOVERED_EXE_NOT_FOUND': Discovered shortcut indicates the app executable should be '\WINDOWS\Installer{FA089B43-0451-420A-968B-DCC3C55644C7}_A9A8E5CA913F4E1EB7F6ACDB86DAFB8B.exe', but this file cannot be found. WARNING: DesktopAppConverter : warning 'W_DISCOVERED_EXE_NOT_FOUND': Discovered shortcut indicates the app executable should be '\Windows\SysWOW64\msiexec.exe', but this file cannot be found. WARNING: DesktopAppConverter : warning 'W_EXE_NOT_DISCOVERED': The application executable could not be determined from any shortcut. MakeAppx will fail until you fix the Application Executable property in the AppxManifest.xml WARNING: DesktopAppConverter : warning 'W_INSTALL_PATH_NOT_DISCOVERED': Converter could not determine your application's install path. Please use the -AppInstallPath parameter to move app binaries outside of VFS. WARNING: DesktopAppConverter : warning 'W_CANNOT_MAKEAPPX_WITHOUT_EXE': Unable to create appx package without setting the 'Application Executable' property in the AppxManifest.xml. Please set the 'Application Executable' property in the AppxManifest.xml before calling makeappx manually. Warning Summary: W_PACKAGE_DEPENDENCY_ADDED A dependency on framework package 'Microsoft.VCLibs.140.00.UWPDesktop' was added to the AppxManifest.xml. See 'http://go.microsoft.com/fwlink/?LinkId=821959' for guidance on installing the package prior to local deployment. Otherwise, if this is in error, remove the corresponding entry from Dependencies in the AppxManifest.xml before packaging and deploying your application.

W_DISCOVERED_EXE_NOT_FOUND Discovered shortcut indicates the app executable should be '\WINDOWS\Installer{FA089B43-0451-420A-968B-DCC3C55644C7}_8C37B49DBB16422C8EF917F2AEA02293.exe', but this file cannot be found.

W_DISCOVERED_EXE_NOT_FOUND Discovered shortcut indicates the app executable should be '\WINDOWS\Installer{FA089B43-0451-420A-968B-DCC3C55644C7}_A9A8E5CA913F4E1EB7F6ACDB86DAFB8B.exe', but this file cannot be found.

W_DISCOVERED_EXE_NOT_FOUND Discovered shortcut indicates the app executable should be '\Windows\SysWOW64\msiexec.exe', but this file cannot be found.

W_EXE_NOT_DISCOVERED The application executable could not be determined from any shortcut. MakeAppx will fail until you fix the Application Executable property in the AppxManifest.xml

W_INSTALL_PATH_NOT_DISCOVERED Converter could not determine your application's install path. Please use the -AppInstallPath parameter to move app binaries outside of VFS.

W_CANNOT_MAKEAPPX_WITHOUT_EXE Unable to create appx package without setting the 'Application Executable' property in the AppxManifest.xml. Please set the 'Application Executable' property in the AppxManifest.xml before calling makeappx manually.

我正在使用相当简单的命令运行 Dekstop App Converter:

DesktopAppConverter.exe -Installer C:\Computator.NET\Computator.NET.Installer.v2.1.0.beta.exe -InstallerArguments "/S" -Destination C:\Computator.NET\Appx -PackageName "Computator.NET" -Publisher "CN=Pawel Troka" -Version 2.1.0.0 -MakeAppx

这个问题似乎是由 InstallShield 安装程序的工作方式引起的。 幸运的是,有一种简单的方法可以解决这个问题——我们需要将路径传递给可执行文件,就像它 -AppExecutable "path_to_your_exe_file_after_installation"

所以我的最终命令是这样的:

DesktopAppConverter.exe -Installer C:\Computator.NET\Computator.NET.Installer.v2.1.0.beta.exe -InstallerArguments "/S" -Destination C:\Computator.NET\Appx -PackageName "Computator.NET" -Publisher "CN=Pawel Troka" -Version 2.1.0.0 -MakeAppx -AppExecutable "C:\Program Files (x86)\Computator.NET\Computator.NET.exe" -Sign

请注意,我还添加了 -MakeAppx-Sign 参数,这是因为我希望它准备好进行测试 - 只需要将证书 auto-generated.cer 安装到 Trusted Root Certification Authorities 转换后,我的 appx 已准备好在我的开发人员机器上安装和测试。

This tutorial was really helpful during the process and also this article 帮了我一点忙。