我们来讨论以下主题.目前正在部署的应用程序有很好的知道xcopy方法.这种方法很难管理依赖项,文件更新等.有一些软件包的帮助下启动应用程序部署的想法,你知道你在Linux的帮助下RPM,但适用于Windows.
所以我有疑问:在Windows经典Windows安装程序(msi)或nuget或其他东西上使用什么包系统更好?
我有一个 C#/WPF 应用程序,它比简单的应用程序更高级 - 它有主应用程序、几个库,然后是一些 NuGet 包。如果我查看项目的 bin/release/netcoreapp3.1 目录,会发现有一个 EXE、几个 JSON 和一堆 DLL(其中一些具有 PDB)。没什么太疯狂的。客户想要一个听起来不像不合理要求的安装程序。
我首先尝试了 Visual Studio 2019 附带的安装程序,但惊讶地发现它是多么无用。删除后,我上网查了一下,发现WiX似乎比较流行。好吧,我说,我会尝试一下。
安装WiX Toolset Build Tools(听起来有点多余)和WiX Toolset Visual Studio Extension并重新启动 Visual Studio 后,看起来不错。我右键单击我的解决方案,选择“添加”和“新项目”,然后看到“Setup Project for WiX v3”,看起来不错。我单击“下一步”,将其命名为“安装程序”,然后我得到:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" Name="Installer" Language="1033" Version="1.0.0.0" Manufacturer="" UpgradeCode="2995de5a-87ef-443d-a25a-450d39720349">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<MediaTemplate />
<Feature Id="ProductFeature" Title="Installer" Level="1">
<ComponentGroupRef Id="ProductComponents" />
</Feature>
</Product>
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir"> …Run Code Online (Sandbox Code Playgroud)