我有一个 .sln 文件,里面有几个项目。为了简单起见,我们称它们为...
- 项目A
- 项目B
- 项目C
...其中 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”的文件:
- 项目A/项目A.xml
- 项目B/项目A.xml
- 项目C/项目A.xml
这些文件包含各自项目的“Intellisense”文档,即使它们都被命名为“ProjectA.xml”。
这会在项目文件夹中创建不需要的和误导性命名的文件,并且(更重要的是)为 B 和 C 中缺少的文档注释生成构建警告。我不想向这些项目添加文档注释,所以我更愿意找到一种方法让 MSBuild 仅为 ProjectA 生成文档。
任何人都可以提供任何见解或替代解决方案吗?