ClickOnce部署所需最小版本随MSBuild自动递增

ClickOnce部署所需最小版本随MSBuild自动递增,msbuild,clickonce,Msbuild,Clickonce,我们从VisualStudio2010执行当前的手动构建/发布,并且我们要求用户始终运行最新版本(启动前检查并设置所需的最低版本集)。我正在编写部署脚本,使用msbuild生成/发布没有问题。但是,我还没有找到在运行msbuild时自动增加所需最低版本的方法。在通过msbuild发布时,我有哪些选项可以自动对此进行缓冲 我在这里确实看到了很多关于这个主题的文章,但它们似乎是针对VS而不是MSBuild的。现在,我倾向于通过自定义命令行实用程序更新MinimumRequiredVersion,该实

我们从VisualStudio2010执行当前的手动构建/发布,并且我们要求用户始终运行最新版本(启动前检查并设置所需的最低版本集)。我正在编写部署脚本,使用msbuild生成/发布没有问题。但是,我还没有找到在运行msbuild时自动增加所需最低版本的方法。在通过msbuild发布时,我有哪些选项可以自动对此进行缓冲


我在这里确实看到了很多关于这个主题的文章,但它们似乎是针对VS而不是MSBuild的。

现在,我倾向于通过自定义命令行实用程序更新MinimumRequiredVersion,该实用程序只需读取项目文件并对其进行增量即可。这是我为编写构建脚本而提出的唯一选项。

我不确定您是否正在以最好的方式进行此操作

我建议使用负责部署的持续集成(CI)服务器。如果发布时需要最新版本的源代码,那么这可能是您应该在经过良好测试的CI构建配置中构建的,并从可能健忘/偶尔容易出错的用户手中拿走的东西。

自动更新
MinimumRequiredVersion
项目编辑器简介
  • 在解决方案资源管理器中,右键单击项目并选择“卸载项目”

  • 项目不可用后,再次右键单击并选择编辑
    proj

  • MSBuild简介
  • 属性使用键/值对提取信息

    • 使用属性名作为别名,可以使用
      $(OutputPath)
      获取元素
      \bin
  • 我们将使用为ClickOnce部署生成的以下属性

    1.0.0.6
    是.NET 4.0及更高版本的内置任务,用于将ApplicationVersion和ApplicationRevision格式化为单个版本号
  • 实施
  • 将以下代码复制并粘贴到打开的项目文件中,作为根
    元素的子元素

    
    
    此代码将ApplicationVersion和ApplicationRevision作为Format Version任务中的参数,并通过使用完整发布版本覆盖MinimumRequiredVersion来保存输出

  • 保存并重新加载项目。现在,每个ClickOnce部署都将自动更新到最新发布的版本



  • 非常感谢Kev,我在这里基本上对其进行了重新阐述,并为初学者增加了一点说明。以下是我就这个问题所做的解释,它在我的回答中进一步展开。

    由于您希望使用MSBuild而不是Visual Studio发布,因此我假设您是从生成服务器或使用某种脚本发布的。您可以使用设置ClickOnce应用程序版本,也可以强制要求最低版本为最新版本。您可能希望在运行MSBuild之前执行此操作。我的博客更详细地描述了这一点。

    这就是我的建议。我已经为Keil uVision xml项目文件做了类似的事情,利用QT的xQuery模块读入、增加版本并重写整个文件。你也可以看到我的博客,里面有更多的信息,我有一个干净的解决方案。请看我的答案。