谁能给我一个提示,我可以手动定义一个 msix 包吗?我的应用程序还没有 msi 包(还),所以我不能简单地转换它。有没有办法像配置文件一样创建,我手动定义哪些文件需要进入 msix 包?MSIX GUI Creator 也没有给我足够的控制权。非常感谢任何链接或帮助
我正在尝试为 Winui3 应用程序创建安装程序并向其添加外部 msi 文件。
到目前为止,我已经尝试过 Wix 工具集和 Microsoft Visual Studio 安装程序项目,但两者都创建了一个包含不起作用的 exe 的 msi 文件。我设法创建具有工作启动器的安装程序的唯一方法是打包桌面应用程序,如下所示https://nicksnettravels.builttoroam.com/packaging-winui3-desktop/。输出是一个 msix 文件,用于安装并启动应用程序。但是,我仍然需要安装外部 msi 文件才能使我的应用程序正常工作。
是否有任何用于创建包含我的项目解决方案 msix 和其他 msi 的 exe 安装程序的解决方案,或者添加打包桌面应用程序的先决条件的方法?
我正在尝试弄清楚如何在 MSIX 中打包 WinUI 桌面应用程序。我们不想上传到 Windows 应用商店或其他任何东西,只是为了能够为人们提供一个安装程序(很像 .msi 文件),并让他们自己将其安装在台式电脑上。
我使用VS2022来打包最基本的WinUI应用程序,即框架为您创建的应用程序。我已成功为其创建了 .msix 文件。但当我将其复制到 Windows Sanbox 实例时,它似乎不知道如何处理 .msix 扩展名。Windows Sandbox 是版本 2004,根据此页面,它应该足够好。
但是,双击 .msix 文件不起作用:
谁能建议这是为什么?
另外,这篇文章似乎表明,即使我可以打开 msix,它仍然需要最终用户手动安装依赖项!这肯定是不对的吧?没有最终用户愿意这样做,不是吗?这篇文章现在有点旧了(事情进展很快),所以有人可以告诉我这是否仍然是 msix 软件包安装程序的状态。有没有一种好的方法来打包应用程序以便安装简单?
我正在尝试使用 msix 作为部署方法将 .net core 3.1 wpf 应用程序安装到 Windows 2019 服务器上。Windows 服务器是最新的并且应该支持 msix,但不会安装我使用 powershell 命令 Add-AppPackage 创建的任何 msix 包。如果您单击 .appinstaller 文件并使用 gui,这些软件包将安装在 Windows 10 计算机上,但如果您使用 powershell,它们将不会安装在同一台计算机上。
这是我尝试安装的示例:
运行 .appinstaller 文件将正确安装此 uwp 应用程序。但是,这是行不通的:
Add-AppPackage .\TestUwp.appinstaller
Run Code Online (Sandbox Code Playgroud)
这是 powershell 脚本输出的错误消息:
Add-AppPackage : Deployment failed with HRESULT: 0x80073CF0, Package could not be opened.
error 0x8007000D: Opening the package from location TestUwp.appinstaller failed.
NOTE: For additional information, look for [ActivityId] 742e8080-11e2-0000-5f0b-3374e211d601 in the …Run Code Online (Sandbox Code Playgroud) 尝试在 VS 2019 WPF 打包项目中使用 Publish 命令创建 64 位 MSIX 包时,我们收到以下错误“wappublish\win-x64\project.assets.json”未找到...运行 NuGet 包还原生成此文件'。
打包项目本身构建良好并且可以调试。从包管理器控制台运行“dotnet Restore”没有帮助。我们注意到 wapppublish 下没有创建 win-x64 目录。
我们使用的是 VS 2019 16.7.4 社区版。任何人有什么想法可能会导致这种情况。
谢谢
我正在尝试遵循 Microsoft 文档,但我对为什么我的 appinstaller 失败感到困惑:
<?xml version="1.0" encoding="utf-8"?>
<AppInstaller xmlns="http://schemas.microsoft.com/appx/appinstaller/2018" Uri="https://xxxxxx.blob.core.windows.net/installer/Package.appinstaller" Version="1.0.0.0">
<MainPackage Name="MyApp" Version="12.21.289.0" Publisher="CN=xxxxxx" ProcessorArchitecture="x64" Uri="https://xxxxxx.blob.core.windows.net/installer/MyApp.msix"/>
<UpdateSettings> <OnLaunch HoursBetweenUpdateChecks="1" /> <AutomaticBackgroundTask/> </UpdateSettings>
</AppInstaller>
Run Code Online (Sandbox Code Playgroud)
如果我运行 MSIX 文件,它会按原样安装。我一直在尝试遵循这个:https :
//docs.microsoft.com/en-us/windows/msix/desktop/azure-dev-ops
我收到此错误:
如果我删除 UpdateSettings 属性,它只会导致另一个错误:“应用程序安装失败并显示错误消息:Appinstaller 操作失败,错误代码为 0x80D05011。详细信息:未知错误 (0x80d05011)”
请帮忙。
尝试使用 MSIX 发布 .Net Maui 应用程序,但未生成“应用程序安装文件”(.appinstaller) 及其所有内容。我正在使用 Visual Studio 发布方法(包括 SideLoading),右键单击项目并按“发布”。
使用 Windows 10。我的应用程序的 TargetPlatformMinVersion:
<TargetPlatformMinVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'">10.0.17763.0</TargetPlatformMinVersion>
Run Code Online (Sandbox Code Playgroud)
以下是我遵循的步骤:
右键单击该项目并选择发布,然后以下图像来自向导。
结果:
在最后一张幻灯片中,捆绑设置为“否”,所需的操作系统为空白,我不知道这是否是问题,但如果是问题,我该如何解决这个问题。
然后我按“复制并关闭”,但 C:\Dev\Installer 中没有生成安装程序文件和 MSIX 捆绑文件。它是空的,但应该有一个捆绑包和一个安装程序文件,我可以使用它们将更新推送到用户已安装的应用程序。
我的项目中生成的设置:
<GenerateAppInstallerFile>True</GenerateAppInstallerFile>
<AppxPackageSigningEnabled>True</AppxPackageSigningEnabled>
<PackageCertificateKeyFile>..._TemporaryKey.pfx</PackageCertificateKeyFile>
<AppxPackageSigningTimestampDigestAlgorithm>SHA256</AppxPackageSigningTimestampDigestAlgorithm>
<AppxAutoIncrementPackageRevision>True</AppxAutoIncrementPackageRevision>
<AppxSymbolPackageEnabled>False</AppxSymbolPackageEnabled>
<GenerateTestArtifacts>True</GenerateTestArtifacts>
<AppInstallerUri>C:\Dev\Installer</AppInstallerUri>
<HoursBetweenUpdateChecks>0</HoursBetweenUpdateChecks>
Run Code Online (Sandbox Code Playgroud) 因此,我尝试使用Windows 10 Creators Update 的直接应用程序安装功能来允许从网络下载打包的现代应用程序。它的主要功能是,它会通过检查 .appinstaller 文件的相同 URL 来自动更新您的应用程序。
https://new-file-explorer.firebaseapp.com/(该页面完全由Visual Studio生成,我没有修改)
问题是,当我单击它时,我只是收到“解析应用程序包时出错”。
如果我手动下载 .appinstaller 文件中引用的 .msixbundle,它将起作用!然而应用程序安装程序本身无法“解析”这个包?
这是最奇怪的部分:如果我使用 Powershell 中的“Add-AppxPackage -Appinstaller”并将其指向 .appinstaller URL,它将完全起作用!
这里的其他答案不适用,因为它们都与在本地服务器上运行它有关(无论如何我都尝试过)。
我认为这与 MIME 类型有关,但我已经按照文档中的说明设置了 MIME 类型,但它仍然不起作用。我已经使用此 URL MIME 类型检查器验证了这一点。我不知道到底是什么原因造成的。
<?xml version="1.0" encoding="utf-8"?>
<AppInstaller Uri="https://new-file-explorer.firebaseapp.com/InstallNFE.appinstaller" Version="1.0.9.0" xmlns="http://schemas.microsoft.com/appx/appinstaller/2017/2">
<MainBundle Name="NewFileExplorer" Version="1.0.9.0" Publisher="CN=david" Uri="https://new-file-explorer.firebaseapp.com/InstallNFE_1.0.9.0_Test/InstallNFE_1.0.9.0_x86_x64.msixbundle" />
<UpdateSettings>
<OnLaunch HoursBetweenUpdateChecks="0" />
</UpdateSettings>
</AppInstaller>
Run Code Online (Sandbox Code Playgroud)
这是.msixbundle 的链接,它似乎无法解析(如您所见,它可以手动下载它!)
我使用 PFX 文件从 .NET MAUI Windows 应用程序和自签名证书中创建了带有 MSIX 的安装包。
\n当我尝试在另一台 Windows 10 计算机上安装它时,收到以下消息:“无法验证此应用程序包\xe2\x80\x99s 发布者证书。请联系您的系统管理员或应用程序开发人员以获取经过验证的新应用程序包证书。必须验证应用程序包中签名的根证书和所有直接证书(0x800B010A)”。部署目录中包含 MyApp.msix 和 MyApp.cer。在我的开发计算机上,使用 MSIX 文件安装没有问题。
\n如何使用这些文件安装到另一台未创建证书的计算机上?
\n我已将 MSIX WPF 应用程序从 .NET 7 升级到 .NET 8,并且它在我自己的计算机上运行良好。但是当我尝试在 Azure DevOps 中构建它时,我收到错误:
C:\agent\_work\_tool\dotnet\sdk\8.0.100\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(491,5):
Error NETSDK1112: The runtime pack for Microsoft.NETCore.App.Runtime.win-x64 was not downloaded. Try running a NuGet restore with the RuntimeIdentifier 'win-x64'.
C:\agent\_work\_tool\dotnet\sdk\8.0.100\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(491,5): Error NETSDK1112: The runtime pack for Microsoft.WindowsDesktop.App.Runtime.win-x64 was not downloaded. Try running a NuGet restore with the RuntimeIdentifier 'win-x64'.
Run Code Online (Sandbox Code Playgroud)
我在本地构建服务器上和使用托管代理时都会遇到相同的错误。
我使用这些任务在计算机上安装和验证 .NET 8:
- task: UseDotNet@2
inputs:
version: '8.x'
- task: PowerShell@2
displayName: 'Check .NET Version and SDKs'
inputs:
targetType: 'inline'
script: |
dotnet --version
dotnet --list-sdks …Run Code Online (Sandbox Code Playgroud) 有关 MSIX 包及其清单文件的几个基本问题:
感谢您的帮助。
我们有一个 Windows UWP 应用程序,目前在 Microsoft 商店中。该项目包括一个商店关联文件,其中包含发布者属性,其中一个是通用名称。我们的商店帐户将 CN 显示为类似于 GUID 的字符串值。它将显示名称显示为我们的公司名称。在 Visual Studio 中,我们可以使用自签名证书构建用于旁加载和代码签名的应用程序,其中证书的 CN 与 Store CN(类似 GUID 的字符串)相同。这使我们能够在商店版本上加载新版本的应用程序,以便快速测试并为特定客户提供新功能。然后,侧载版本最终可以使用较新的已发布商店版本进行更新。
我的问题是:我们想用我们从受信任的证书颁发机构购买的代码签名证书对应用程序进行签名。问题是受信任的代码签名证书必须将通用名称作为公司名称。我们似乎只能使用通用名称与商店关联文件中的 CN 相同的证书(类似字符串的 GUID)对应用程序进行签名。这是存储关联应用程序的已知限制还是我们遗漏了什么?
我有一个 WPF 应用程序,我计划与 Visual Studio 中的 Windows 应用程序打包项目一起部署,该应用程序为安装和未来更新制作 MSIX 包。安装程序会自动将应用安装在 C:\Program Files\WindowsApps 中。这很好,直到程序需要缓存一些数据或需要修改 appsettings 文件,因为应用程序没有访问这些资源的权限。
有没有我可以在包装属性/清单中更改的设置,以便它可以安装在其他地方,这样我就可以避免这些问题?
msix ×13
windows ×4
installation ×2
wpf ×2
.net ×1
.net-core ×1
.net-maui ×1
appinstaller ×1
appx ×1
appxmanifest ×1
azure-devops ×1
c# ×1
code-signing ×1
deployment ×1
maui ×1
packaging ×1
powershell ×1
sandbox ×1
sideloading ×1
uwp ×1
wack ×1
windows-10 ×1
winui ×1
winui-3 ×1
xml ×1