我有一个包含多个项目的解决方案(1个WebApi项目,2个MVC项目和一堆类库)。
我正在关注使用Octopus Deploy打包单个项目的this文章,并在项目包含在单个解决方案中时将它们推送到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 \ 1 \ s \ Test.Models \ Test.Models.csproj“(默认目标)(5) - > (ImplicitlyExpandDesignTimeFacades target) - > C:\ Program Files (86)\的MSBuild \ 14.0 \ BIN \ Microsoft.NetFramework.CurrentVersion.targets(107,74): 错误MSB4184:表达式“”“。ArtifactsStagingDirectory”不能 评估。找不到方法'System.String.ArtifactsStagingDirectory'。 [d:\一个\ 1 \ S \ Test.Models \ P4P.Models.csproj]
这是一个失败的独立类库。解决方案是在达到此故障之前构建其中一个Web应用程序和另一个类库。
答案 0 :(得分:1)
您指定的变量$(Build.ArtifactsStagingDirectory)
不是预定义变量。有一个冗余的字符串" s"在里面。正确的应该是:$(Build.ArtifactStagingDirectory)
。