在 visual studio 2017 年通过 postbuild 事件构建 .net 核心项目

Build .net core project by postbuild event in visual studio 2017

我有项目 A,它依赖于项目 B,但没有从 BA 的引用。我想在项目 Bbin folder 中构建程序集并将其复制到项目 Abin folder 中。我如何使用 post 构建事件和 dotnet msbuild.

执行此操作

我找到了这个 link 但它适用于 VS 2015 及以下版本和 MS-Build:

Build another project by prebuild event without adding reference

how can I do this with post build event and dotnet msbuild

您可以在项目A的post构建事件中添加构建任务复制任务来实现您的要求:

"$(MSBuildBinPath)\MSBuild.exe" "$(SolutionDir)ProjectB\ProjectB.csproj"
 xcopy.exe "$(SolutionDir)ProjectB\bin\Debug\netcoreapp1.1\ProjectB.dll" "$(SolutionDir)ProjectA\bin\Debug\netcoreapp1.1"

如果项目B的bin文件夹下有多个程序集,也可以使用通配符复制程序集,如

xcopy.exe "$(SolutionDir)ProjectB\bin\Debug\netcoreapp1.1\*.dll

希望对您有所帮助。

以下是对我有用的方法。它来自:https://github.com/dotnet/sdk/issues/677

<Target Name="PostBuild" AfterTargets="PostBuildEvent">
    <Exec Command="if not exist $(OutDir)..\..\..\..\build  mkdir $(OutDir)..\..\..\..\build" />
    <Exec Command="copy $(OutDir)$(TargetName).dll $(OutDir)..\..\..\..\build$(TargetName).dll /Y" />
    <Exec Command="copy $(OutDir)$(TargetName).pdb $(OutDir)..\..\..\..\build$(TargetName).pdb /Y" />
</Target>