我有一个.sln文件,里面有几个项目.为了保持这个简单,我们称之为……
> ProjectA
> ProjectB
> ProjectC
…其中A是引用B和C的主项目.我的目标是更新我的构建脚本,为ProjectA生成XML“Intellisense”文档文件,而不提供有关B和C缺少文档的构建警告.
当前构建脚本
我有一个MSBuild脚本,在构建步骤中包含以下内容:
<PropertyGroup> <CustomOutputPath>C:\build\output\</CustomOutputPath> </PropertyGroup> <ItemGroup> <Projects Include="ProjectA\ProjectA.csproj"> <Properties>OutputPath=$(CustomOutputPath)</Properties> </Projects> </ItemGroup> <MSBuild Projects="@(Projects)" />
(ItemGroup中实际列出了多个项目,但同样,让我们保持这个简单.)
当我运行构建脚本时,它足够聪明,可以为我编译B,C和A,即使我只指定了A.所有输出都出现在“CustomOutputPath”位置.
我最接近的……
如果我将“DocumentationFile”属性添加到我的项目条目中……
<ItemGroup> <Projects Include="ProjectA\ProjectA.csproj"> <Properties>OutputPath=$(CustomOutputPath);DocumentationFile=ProjectA.xml</Properties> </Projects> </ItemGroup>
…然后’ProjectA.xml’出现在“CustomOutputPath”中.但是,我还在项目文件夹中为所有三个项目获取名为“ProjectA.xml”的文件:
> ProjectA / ProjectA.xml
> ProjectB / ProjectA.xml
> ProjectC / ProjectA.xml
这些文件包含各自项目的“Intellisense”文档,即使它们都被命名为“ProjectA.xml”.
这会在项目文件夹中创建不受欢迎且误导性命名的文件,并且(更重要的是)为B和C中缺少的文档注释生成构建警告.我不想为这些项目添加文档注释,所以我更喜欢找到让MSBuild仅为ProjectA生成文档的方法.
任何人都可以提供任何见解或替代解决方案吗?