Добавить событие сборки в несколько проектов, не добавляя один за другим

У меня есть более 100 проектов в моем решении, теперь я должен добавить событие после сборки в большинство проектов, чтобы скопировать некоторые неуправляемые сторонние сборки в его $(TargetDir), но я должен добавить это событие после сборки проекты по одному, что не то, что я хочу. Поэтому я хочу знать, есть ли способ решить эту проблему без добавления события для большинства проектов один за другим.

1 ответ

Решение

Добавить событие сборки в несколько проектов, не добавляя один за другим

Вы можете добавить цель копирования в Directory.Build.props файл и установить это .props в каталоге решений. Если реквизит файл называется Directory.Build.props он будет автоматически импортирован во все проекты в иерархии каталогов.

Ниже по моему Directory.Build.props:

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Target Name="CopySAssembly" AfterTargets="Build">
      <Message Text="YourCopyTask"></Message>
    </Target>
</Project>

Кроме того, вы можете использовать пакет nuget для управления этими неуправляемыми сторонними сборками. Добавить этот пакет nuget в несколько проектов очень просто, для этого используйте менеджер пакетов nuget:

Создать пакет Nuget из DLL

Надеюсь это поможет.

Другие вопросы по тегам