繁体   English   中英

.net core 3 wpf/winforms(非 MSIX)的安装程序?

[英]Installer for .net core 3 wpf/winforms (non MSIX)?

所以,我们完成了一些 wpf 到 .net core 的转换,现在我们需要将一个作为安装程序发送到外部客户端。 以前我们使用 ClickOnce,但它在 .net core 中已被弃用,并且不会根据 MS 进行移植,他们推荐 MSIX。 但是,正如我们从文档中了解到的,即使我们将旁加载 WPF 应用程序,它仍将在具有虚拟化文件系统的沙箱中运行。 这对我们来说是行不通的,它显然在设计时就考虑到了 UWP+Marketplace 交付。 我们需要文件系统上的应用程序具有对文件系统的完全访问权限,“老方法”。

我们可以将它们作为 zip 文件发送并让客户解压缩,但管理层认为这不太专业,所以我们需要一个类似于 msi/clickonce 的交付包。 有没有人在 MSIX 之外的核心上交付过应用程序?

编辑:微软已经宣布他们将在 .NET 5 中包含 ClickOnce 支持

您可以通过旁加载 msix 包在组织内部部署 .NET Core 和 .NET 5 应用程序。

多年来,我一直成功地使用 Clickonce 来部署 .NET 业务线应用程序。

现在我正在将我的应用程序更新到 .NET Core,我想要类似于 Clickonce 的东西。 换句话说:通过简单地处理安装程序的快捷方式,在网络共享中发布您的安装程序并将您的自动更新应用程序部署到您的客户端。

您可以使用 msix 包来实现这一点。 问题是您仅限于 Windows 10 版本 1709 及更高版本

解决方案于 12 月 19 日随MSIX Core 1.1 一起出现 使用 msix 核心支持打包您的应用程序,您可以面向 Windows 7 SP1 及更高版本,这是我需要的东西,因为在工作中,我们正在慢慢地从 Windows 7 过渡到 Windows 10,我仍然必须支持旧版本的 Windows。

使用 msix core 打包 .net core 应用程序的步骤是:

  1. 在您的解决方案中创建一个 Windows 应用程序打包项目。

  2. 右键单击 Windows 应用程序打包项目的 Applications 子文件夹,然后选择 Add Reference。 然后选择您的目标项目。

  3. 更改您的 Package.manifest(参考: msix-packaging/MsixCore at master · microsoft/msix-packaging · GitHub )右键单击您的 Package.manifest 文件并选择查看代码将您的更改为:

     <Dependencies> <TargetDeviceFamily Name="MSIXCore.Desktop" MinVersion="6.1.7601.0" MaxVersionTested="10.0.10240.0" /> <TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.16299.0" MaxVersionTested="10.0.18362.0" /> </Dependencies>

    有了这个,您可以将您的最小版本稳定到 MSIXCore.Desktop,即 Windows 7 sp1。

  4. 右键单击您的 Windows 应用程序打包项目,然后选择发布,然后选择创建应用程序包。

  5. 选择旁加载,然后选中启用自动更新。

    选择

  6. 为了在客户端机器中安装软件包,您必须对其进行签名。 我建议您创建一个自签名证书。 您必须在客户端计算机中安装证书,以便该软件包受信任并且您可以安装它。 如果您在域中,则可以使用组策略部署自签名证书。 最佳情况是使用受信任的根证书颁发机构提供的受信任证书对包进行签名。 我个人的选择是在我自己的 Windows 证书颁发机构(在我的本地域中受信任)中创建一个证书。 如果您决定使用受信任的证书签署您的包,这是命令行:


  .\SignTool.exe sign /fd SHA256 /a /f yourcert.pfx /p yourpassword *.appx

  1. 选择从不生成应用程序包。

图像-20200521005823248

  1. 选择用于发布包的网络共享

图像-20200521003324900

为了在 Windows 7 sp1 机器上执行您的包安装程序,您必须事先相应地安装 msixmgrSetup-1.1.0.0-x64.msi 或 msixmgrSetup-1.1.0.0-x86.msi。 您可以在此处找到安装程序

Windows 10 机器将立即识别安装程序。

如果您想了解有关 msix 软件包的更多信息,请在此处提供很好的解释

我希望本指南可以帮助您使部署系统正常工作。

好吧,显然,我们再次面临来自 MS 的“我们的方式或高速公路”,所以我们只使用了 Inno Setup。 在我们获得正确的安装过程或 MSIX 允许没有不必要的文件系统抽象的非沙盒安装之前,这将是必须的。

还有其他工具,例如 Advanced Installer 或 InstallShield,它们现在可以创建 MSI/EXE 安装程序,以后如果您决定使用 MSIX,您只需向当前项目添加一个新版本即可。

该工具将自动将 MSI 的内容与 MSIX 同步,或者至少这是 Advanced Installer 为您所做的。

它们还有一个 VS 扩展,因此您可以在 Visual Studio IDE 中构建安装程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM