【问题标题】:Invalid value for 'AssemblyVersion' when building valid csproj构建有效的 csproj 时“AssemblyVersion”的值无效
【发布时间】:2016-11-09 20:15:26
【问题描述】:

我有一个项目引用了其他几个项目。它们都是使用 x86 作为平台构建的。这在我的桌面上编译得很好。

在我的远程 VSO 构建期间,我总是收到错误

MSB3174:“AssemblyVersion”的值无效

当我编辑.csproj 文件时,我发现它没有任何问题。我做错了什么?

VSO 构建参数很简单: /t:发布 /p:ApplicationVersion=$(Build.BuildNumber)

我有其他项目使用 $(Build.BuildNumber) 没有问题

VSO 构建日志中的参数(为清楚起见已截断):

"C:\Program Files (x86)\MSBuild\12.0\bin\msbuild.exe" "[App_PATH].csproj" 
/nologo 
/nr:false 
/t:"Clean" 
/dl:CentralLogger,[*snip dll path] 
/t:Publish 
/p:ApplicationVersion=DEPLOY.[App_Name]_2016.11.09.16 
/p:platform="x86" 
/p:configuration="DV1" 
/p:_MSDeployUserAgent="VSTS[*snip]"

编辑:我尝试从本地命令提示符运行 MSBuild,但我得到了相同的行为。 VSTS 或其任何设置信息都不应受到指责。

我只是希望我知道要查看我的应用程序来纠正它。

【问题讨论】:

  • 您是否有一个步骤来填充 AssemblyVersion(通常在 AssembliyInfo.cs 中)作为构建的一部分 - 可能使用构建服务器上不存在或不同的变量?
  • 你能告诉我们你认为没有问题的部分吗?您是否使用this question 等命令行参数覆盖它?
  • 在构建之前有一个步骤可以更新 AssemblyInfo.cs 文件中的 AssemblyFileVersion,但是我验证了它是否正确地完成了它的工作并且 b- 我已经在没有它的情况下运行了构建并且我得到相同的行为。 AssemblyVersion:1.0.0.0 和 AssemblyFileVersion:1.0.0.0 的默认值
  • 你能用一个新项目重现这个问题吗?您可以在 OneDrive 上共享项目。
  • 这个错误的MSDN docs 相当不错。使用 /v:diag 选项来获取构建跟踪详细信息,这样您就可以看到出错了。

标签: c# msbuild azure-devops


【解决方案1】:

问题在这里:

/p:ApplicationVersion=DEPLOY.[App_Name]_2016.11.09.16 

版本格式不符合要求。请尝试以下格式:1.2.3.4。

详情请参阅MSBuild Error MSB3174Version Constructor (String)

备注

version参数只能包含major、minor、 按此顺序构建和修订,并以句点分隔。 必须至少有两个组件,最多四个。前两个 组件被假定为主要和次要。未指定的值 组件未定义。版本号的格式如下 跟随。可选组件显示在方括号中('[' 和 ']'): major.minor[.build[.revision]] 所有定义的组件必须是 大于或等于 0 的整数。例如,如果主编号 为 6,次要编号为 2,内部版本号为 1,修订版本 数字为 3,则版本应为“6.2.1.3”。

【讨论】:

  • 发现Generals选项卡中的Build Number Format不正确。我使用此值来更正构建:$(Date:yyyy.MM.dd)$(Rev:.r)
猜你喜欢
  • 2018-09-25
  • 1970-01-01
  • 2021-12-15
  • 1970-01-01
  • 2018-05-26
  • 2018-06-29
  • 2019-11-08
  • 2023-04-05
  • 2011-08-05
相关资源
最近更新 更多