我正在使用Msbuild构建我的解决方案[我们将传递解决方案名称而不是csproj名称]。在上面的图片解决方案文件夹[Configuration,Source,Tests]中有很少的项目和3个没有解决方案文件夹的项目。
我们曾经从Msbuild任务获取Buildoutputs,如下所示
<MSBuild Projects="@(Solution)" BuildInParallel="true"
Properties="Configuration=$(Configuration);PostbuildEvent=;Version=$(BuildNextVersionNumber)"
Condition="'%(Solution.Group)' == '$(Group)' And '%(Solution.Type)' == 'DotNET' And '%(Solution.IsRebuild)'=='$(IsRebuild)'">
<Output
TaskParameter="TargetOutputs"
ItemName="BuildOutputs" />
</MSBuild>
但是,解决方案文件夹之外的项目生成的程序集不会添加到Buildoutputs项目中。
我们通过构建项目而不是sln来解决这个问题。
为什么会这样?有没有其他简单的方法来纠正它?
答案 0 :(得分:0)
尝试使用“消息”任务打印所有解决方案组,以检查是否存在未包含在任何解决方案文件夹中的项目的“根”组。或者,如果没有根组,请尝试在您的条件中使用空组构建它:'%(Solution.Group)'==''