将构建事件添加到多个项目中,无需一一添加

Add build event to multiple projects without adding one by one

我的解决方案中有超过 100 个项目,现在我必须向大多数项目添加一个 post-build 事件,以将一些非托管的第 3 方程序集复制到它的 $(TargetDir) 中,但我有将这个 post-build 事件一一添加到那些项目中,这不是我想要的。所以我想知道是否有一种方法可以解决这个问题,而不必为大多数项目逐一添加事件。

Add build event to multiple projects without adding one by one

您可以将复制目标添加到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 包来管理那些非托管的第 3 方程序集,将此 nuget 包添加到多个项目应该很容易,使用 nuget 包管理器解决方案:

希望对您有所帮助。