发布 .NET Core 应用程序时针对多个运行时

Targeting Multiple Runtimes When Publishing a .NET Core App

我想使用 .NET Core 创建一个 self contained Web 应用程序。我想针对 Windows 的任何版本并将其放入我的 project.json:

"runtimes": {
  "win10-x64": { },
  "win8-x64": { },
  "win7-x64": { }
}

当我运行dotnet publish --runtime win10-x64我一次只能指定一个运行时间发布。然后我必须维护我的二进制文件的三个副本。

是否可以将我的应用程序发布所有三个 运行 次并将该文件夹复制为一个完全独立的应用程序?

当您创建独立的应用程序时,它包含 运行 所需的所有依赖项。据我所知,发布到 Windows 的各种版本之间的唯一区别是,对于旧版本,必须捆绑新版本中内置的一些依赖项。

这意味着,如果您想在 Windows 的所有受支持版本上使用一个 运行 版本的自包含应用程序,您可以:只使用最旧版本的 Windows (win7-x64).

同样的方法可能不适用于 Linux,因为 Linux 通常不保持版本之间的二进制兼容性。