如何自动将WiX的“产品版本”设置为Asp.NET Core的“包版本”?

时间:2018-10-11 17:52:36

标签: c# asp.net-core wix windows-installer

我有一个使用Asp.NET Core项目的解决方案,以及一个生成MSI并将其部署到IIS服务器的WiX项目。

当前,每当我们构建项目时,我们都必须在以下位置更新内部版本号:

  1. Asp.NET项目属性页>“程序包”选项卡>程序包版本:x.x.x
  2. Asp.NET项目属性页>“程序包”选项卡>程序集版本:x.x.x.x
  3. Asp.NET项目属性页>“程序包”选项卡>程序集文件版本:x.x.x.x
  4. WiX wxs文件:

我想最大程度地减少更新版本所需的单个编辑次数。理想情况下,我只需要在Asp.NET项目属性页上设置版本,Wix会自动反映出更改。

基于相关答案,我能够通过将WiX版本绑定到AssemblyFileVersion来自动进行设置。但是,该解决方案有两个问题。您最终得到的是MSI的4位数字版本号,上帝知道将来会导致什么令人窒息。另一个问题是我不想将我的MSI版本绑定到dll版本(在某些情况下,不能通过dll更新该软件包)。

这就是为什么我正在寻找一种从Asp.NET属性页自动将WiX版本设置为程序包版本的原因。它解决了上述两个问题,因为该版本号可以设置为3位数字,并且它也不与dll文件版本相关。我该怎么办?程序包版本存储在Asp.NET csproj文件中,如下所示(它是1.0.2标记):

  <PropertyGroup>
    ...
    <Version>1.0.2</Version>
    <AssemblyVersion>1.0.0.2</AssemblyVersion>        
    <FileVersion>1.0.0.2</FileVersion>
    <Company>My Company</Company>
    <Product>My Product</Product>
    <Authors>My Company</Authors>
  </PropertyGroup>

如何在构建过程中将wxs项目文件中的属性设置为该值?在这一点上,我什至将采用黑客解决方案,因为这看起来似乎没有标准的方法。

enter image description here

0 个答案:

没有答案