使用Publish for ClickOnce应用程序会自动增加构建版本号。此版本号与项目属性中的程序集版本不同(后者又会自动显示在生成的WPF框中)。
有没有办法在装配属性中同步ClickOnce版本号和项目编号?目标是为两个地方获得自动增加且相同的版本号。
答案 0 :(得分:1)
没有自动(内置)方式来执行此操作。我在项目中使用的一种可能的解决方法是使用自定义的msbuild任务生成发布和汇编版本信息。
一些可用作nuget包的项目旨在解决这些问题,但没有什么非常完整的。请查看SemVerHarvester和CroMagVersion ...
以上都有很多问题:
我已经为上述所有内容提供了解决方法,我打算很快在github上开源...同时我会说明我做过的事情:
我做了一个自定义的msbuild任务,它从git读取版本信息,然后根据这些信息创建一个内存中的AssemblyInfo文件。我检查现有的AssemblyInfo.cs文件(即具有AssemblyVersion和其他属性的文件),并且当且仅当内存版本更新时才覆盖它。这允许增量重建。最后,我还输出ApplicationVersion,ApplicationRevision和其他属性来支持ClickOnce。
如果我将我的解决方案作为一个独立的解决方案进行开源,我可能会允许从文本文件,git,hg等中获取版本信息
问题我还没有找到好的解决方案:
ClickOnce不直接支持多个发布渠道 - 比如debug / beta / custom_feature /无论是什么让我想知道我是否应该放弃clickonce并使用Shimmer代替。