我们有一个使用 ClickOnce 部署的 Outlook 加载项。
一旦开发人员签入构建,PC 就会对构建进行排队,并将应用程序发布到共享驱动器上的某个位置。
问题在于,构建不会将发布版本更改为当前程序集版本,因此它会在先前版本的文件夹中发布,这会导致安装程序损坏,提示无法安装该版本。
我读了那篇文章 https://stackoverflow.com/questions/8482360/how-can-i-get-msbuild-to-increment-clickonce-publish-revision-version-number-on。我设置了[程序集:AssemblyVersion(“1.0.*”)]。依然没有。
我找到了一种方法来解决这个问题,通过增加<ApplicationVersion></ApplicationVersion>
在 *.csproj 文件中。但我希望它能够自动化。
另一个解决方法是在执行 msbuild.exe 时:
/target:publish /property:PublishDir="\\sharedDir\\" /property:GenerateManifests=true
/property:ApplicationVersion=1.0.0.123
但它仍然不是自动化的。我真的很想将当前版本号传递给 msbuild.exe 或在每个版本中替换中的值<ApplicationVersion></ApplicationVersion>
与实际的内部版本号。或者还有别的办法吗?
我遇到了同样的问题,这就是我来到这里的原因。我能够使用您问题中的代码作为基础来解决。以下是使用 TFS 解决问题的步骤。
打开构建模板并打开工作流程底部的“参数”选项卡。找到MSBuildArguments并修改默认值。以下是我最终得到的结果:
// Note: You can use /p for /property and /t for /target
"/t:Publish /p:PublishDir=<PublishDirectory> /p:ApplicationVersion="
+ Date.Today.ToString("yyyy") + "."
+ Date.Today.ToString("MMdd") + "."
+ Date.Now.Hour.ToString() + "."
+ Date.Now.Minute.ToString()
当然,现在您需要保存并签入新的构建文件。我在让构建定义使用新值时遇到问题,因此我刚刚创建了一个新的构建定义。
这将创建一个新的应用程序文件夹,例如:
<ApplicationName>_2013_0315_09_55
我知道这是对旧帖子的新答案,因此我确信您已经找到了另一个解决方案,但我希望这可以帮助任何想要将 ClickOnce 部署与 TFS 结合使用的人。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)