如何通过 MSBuild 获取 .NET Core 应用程序的输出路径?

How to get the output path of a .NET Core app via MSBuild?

根据我的 project.json 文件,我有一个以 .NET Framework 为目标的 .NET Core 项目;

"frameworks": {
    "net461": {
      "dependencies": { }
    }
}

我正在尝试找到一种方法将一些(本机)依赖项复制到我的输出构建目录,但我正在努力寻找正确的方法。

当我构建这个项目时,我的输出转到 bin\Debug\net461\win7-x64。我想知道是否有检索输出路径的方法? $(TargetDir) 给了我 bin\ 目录,但是是否有一个变量可以检索 bin\Debug\%FRAMEWORK%\%RUNTIME%?

我还应该在 MSBuild 上使用 project.json 脚本吗?

编辑 - 2017 年 5 月 请在下面查看我的回答。简而言之,project.json 从未支持过这一点,但是鉴于 VS2017 中 project.json 的弃用,这个问题不再相关。

您可以将发布后脚本添加到您的 project.json,您可以在其中将本机位复制到 %publish:OutputPath%。另一种选择是将要包含的文件添加到:

"publishOptions": {
  "include": [
    ...

编辑 - 2017 年 5 月

Visual Studio 工具现已升级到版本 15,引入了 Visual Studio 2017 并且在此版本中 global.jsonproject.json.xproj 具有已逐步淘汰,取而代之的是 .csproj 项目文件。 VS2017打开解决方案时会提供单向迁移

有关迁移文档,请参阅此处: https://docs.microsoft.com/en-us/dotnet/articles/core/migration/

请参阅此处了解两者之间的比较: https://docs.microsoft.com/en-us/dotnet/articles/core/tools/project-json-to-csproj