Как создать XML-документацию для CSPROJ с несколькими целями

у меня есть проект библиотеки, который имеет несколько целей, например, в файле CSPROJ он имеет:

<TargetFrameworks>net40;net46;net461;net462;net47</TargetFrameworks>

если я хочу XML-документацию для всех комбинаций этих целевых фреймворков и Debug и Release конфигурации я должен выбрать каждый по очереди в пользовательском интерфейсе с помощью Диспетчера конфигурации сборки, а затем установить его для создания XML-документации для этой комбинации, и каждая комбинация затем указана отдельно как PropertyGroup В CSPROJ с предполагаемым выходным файлом для XML-документация.

есть ли лучший способ?

публикация вопроса и ответа, потому что я не нашел этого документально нигде в интернете

2 ответов


простой способ-установить GenerateDocumentationFile свойство true. VS UI хочет установить путь, цели MSBuild установят этому свойству значение true, если путь установлен или установить путь по умолчанию, если GenerateDocumentationFile свойство true. Таким образом, вы можете добавить это в свой файл csproj:

<PropertyGroup>
  <GenerateDocumentationFile>true</GenerateDocumentationFile>
</PropertyGroup>

если вы хотите установить значение true для всех ваших проектов, чтобы поделиться им, создайте файл с именем Directory.Build.props в каталоге вашего решения со следующим содержимым, и он будет автоматически импортирован в любой проекты в иерархии каталогов ниже:

<Project>
  <PropertyGroup>
    <GenerateDocumentationFile>true</GenerateDocumentationFile>
  </PropertyGroup>
</Project>

один из способов исправить это-включить следующее В каждый файл CSPROJ:

<!-- Build XML documentation for all combinations of target framework x configuration -->
<PropertyGroup>
 <DocumentationFile>bin$(Configuration)$(TargetFramework)$(AssemblyName).xml 
 </DocumentationFile>
</PropertyGroup>

еще лучшим способом является ссылка на общий файл конфигурации:

<!-- This must come after any other configuration so that it overwrites it -->
<Import Project="$(MSBuildThisFileDirectory)..\Shared.msbuild" />

... а затем поместите вышеуказанные строки в этот общий файл конфигурации, где вы также можете установить все другие параметры csproj для решения, такие как Product, Company, Copyright, ...