2016-11-09 23 views
1

我有一个引用其他几个项目的项目。它们都是使用x86作为平台构建的。这在我的桌面上编译得很好。构建有效的csproj时,'AssemblyVersion'的值无效

在我的远程VSO构建我总是得到错误

MSB3174:无效值“的AssemblyVersion”

当我编辑.csproj文件,我看没有错。我究竟做错了什么?

VSO建立参数是干脆: /吨:发布/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或其任何设置信息。

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

+0

作为构建的一部分,您是否有一个步骤来填充AssemblyVersion(通常在AssembliyInfo.cs中) - 也许使用不存在或构建服务器上不同的变量? – DaveShaw

+0

您能向我们展示您认为没有问题的部分吗?你用这个命令行参数覆盖了这个问题吗?(http://stackoverflow.com/questions/40223153/how-do-i-pass-a-version-information-to-msbuild-within-visual-studio-团队服务)? –

+0

构建之前有一个步骤来更新AssemblyInfo.cs文件中的AssemblyFileVersion,但是我a-验证它正在正确地完成它的工作,并且b-我没有它来运行构建,并得到相同的行为。 AssemblyVersion的默认值:1.0.0。0和AssemblyFileVersion:1.0.0.0 –

回答

2

问题就在这里:

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

版本格式不符合要求。请尝试使用这种格式:1.2.3.4。

有关详细信息,请参阅MSBuild Error MSB3174Version Constructor (String)

备注

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

+0

事实证明,将军选项卡中的内部版本号格式不正确。我使用这个值来纠正构建:$(Date:yyyy.MM.dd)$(Rev:.r) –