VSTS 构建失败 - 错误 MSB4184:无法评估表达式“”.ArtifactsStagingDirectory”

VSTS Build Failure - error MSB4184: The expression """.ArtifactsStagingDirectory" cannot be evaluated

我有一个包含多个项目的解决方案(1 个 WebApi 项目、2 个 MVC 项目和一堆 class 库)。

我正在关注 this 关于使用 Octopus Deploy 打包单个项目并将项目包含在单个解决方案中时将它们推送到 Octopus 服务器的文章。

构建解决方案任务让我更改了以下参数:

/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(BuildConfiguration)"

/p:OutDir=$(Build.ArtifactsStagingDirectory) /p:GenerateProjectSpecficOutputFolder=true

从表面上看,这是有道理的 - 将所有内容发布到一个目录并为每个项目创建一个单独的文件夹。

然而改变这个 - 在构建时创建和错误:

d:\a\s\Test.Models\Test.Models.csproj" (default target) (5) -> (ImplicitlyExpandDesignTimeFacades target) -> C:\Program Files (x86)\MSBuild.0\bin\Microsoft.NetFramework.CurrentVersion.targets(107,74): error MSB4184: The expression """.ArtifactsStagingDirectory" cannot be evaluated. Method 'System.String.ArtifactsStagingDirectory' not found. [d:\a\s\Test.Models\P4P.Models.csproj]

这是一个失败的单独 class 库。解决方案是在出现此故障之前构建一个 Web 应用程序和另一个 class 库。

您指定的变量 $(Build.ArtifactsStagingDirectory) 不是预定义变量。里面有多余的字符串"s"。正确的应该是:$(Build.ArtifactStagingDirectory).