How do I get the ClickOnce Publish version to match the AssemblyInfo.cs File version?每次我在ClickO中发布应用程序时,都会得到一次将修订号更新1的信息。有没有一种方法可以自动进行此更改以更改AssemblyInfo.cs文件中的版本号(我们所有的错误报告都将其查看为Assembly Version)? 我们使用Team Foundation Server Team Build,并且已将一个块添加到TFSBuild.proj的
从理论上讲,这可以在您的项目文件中完成(无论如何,这只是一个MSBuild脚本),但是我建议您不要从开发人员机器上进行部署。 我确定其他持续集成(CI)解决方案也可以类似地处理此问题。 编辑:对不起,您的问题倒退了。从ClickOnce版本号转到AssemblyInfo文件应该是可行的。我确定MSBuild社区任务(上面的链接)具有用于更新AssemblyInfo文件的任务,因此您只需要一个自定义任务即可从ClickOnce配置XML中提取版本号。 但是,您也可以考虑将错误报告更改为也包括ClickOnce发布版本:
我最近使用一些自定义任务实现了这一点。我发现使用ClickOnce实施此操作时遇到的问题是,所有DLL文件都已更新。这将导致ClickOnce更新在每次更新时下载所有应用程序文件。这绕过了ClickOnce部署的出色功能,在这些功能中,只有经过修改的文件才在更新中重新下载。 使用ClickOnce实现类似的事情时,只需考虑一下。 步骤: 顺便说一句,一个不错的好处是,每当您通过集成脚本自动发布较新的ClickOnce部署版本时,如果您还为mage.exe指定了最低版本(与版本相同),则每个用户都将自动更新下次启动应用程序。 您可能需要创建一段代码,根据.csproj文件中存储的版本号更新AssemblyInfo.cs。 (ClickOnce部署版本存储在XML标记内。) 然后,您将更改.csproj文件,以在执行"发布|发布"构建时运行此代码。 MSBuild的人已经在博客上发表了关于如何在某些构建类型期间执行自定义操作的博文。请查看MSBuild团队博客。 |