Buildoutputs属性没有程序集名称

时间:2012-01-20 07:35:41

标签: msbuild msbuild-4.0

enter image description here

我正在使用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来解决这个问题。

为什么会这样?有没有其他简单的方法来纠正它?

1 个答案:

答案 0 :(得分:0)

尝试使用“消息”任务打印所有解决方案组,以检查是否存在未包含在任何解决方案文件夹中的项目的“根”组。或者,如果没有根组,请尝试在您的条件中使用空组构建它:'%(Solution.Group)'==''