代码之家  ›  专栏  ›  技术社区  ›  Lorenzo Isidori

.Net核心工作原理dotnet publish命令

  •  0
  • Lorenzo Isidori  · 技术社区  · 6 年前

    我有一个针对.NET Standard 2.0的解决方案和一个针对.NET Core 2.1的控制台应用程序项目。

    我将“myFolder”设置为输出文件夹。

    • “myFolder\netstandard2.0”
    • “myFolder\netcoreapp2.1”

    现在我需要我的控制台应用程序的EXE文件。

    现在我得到了这个新目录“myFolder\netcoreapp2.1\win-x64”,在这里我找到了所有的DLL文件和控制台应用程序的EXE文件。

    还不够!

    我又找到了一个目录“myFolder\netcoreapp2.1\win-x64\publish”,在那里我又找到了所有的DLL文件和控制台应用程序的EXE文件。

    他们有什么意思?我看了报纸 command documentation ,但我没有找到答案。

    1 回复  |  直到 4 年前
        1
  •  24
  •   willwolfram18    6 年前

    根据文件

    -o|--output <OUTPUT_DIRECTORY>

    dotnet publish -c Release -r win-x64 --output ./MyTargetFolder MySolution.sln

        2
  •  3
  •   Peter Mortensen Len Greski    4 年前

    要成功发布和部署,您真正需要了解的是 dotnet publish 并确保您有一个发布配置 -c Release

    您的所有文件都将位于“publish”子文件夹中,例如。 ./bin/Release/[解决方案所针对的框架]/publish . 这里包含的文件是应用程序/服务的运行实例所需的所有文件。这个 MySolution.dll

    要配置和部署一个正在运行的实例,您需要了解如何将所有这些文件部署到服务器,并以某种方式配置一些东西(例如web服务器、运行时、服务主机…)来调用 MySolution.dll

    请注意,在您的 点网发布 你在说什么 -r ,这意味着您的应用程序的目标是在64位Windows下运行,而不是Linux发行版或OSX(这使它的可移植性降低,但它的优点是将您的应用程序与您部署到的服务器上安装的运行时的更改隔离开来)。这就是为什么你会看到一个额外的文件夹 win-x64 .

    此外,您还显式地从解决方案文件指定的解决方案配置进行构建 MySolution.sln