【问题标题】:dotnet build application deploydotnet 构建应用程序部署
【发布时间】:2018-07-10 07:25:40
【问题描述】:

我们有一个 .net 核心 Web 应用程序,并且我们正在构建一个自动部署过程。从我在this site 上读到的内容,我看到了:

dotnet build 的产品尚未准备好转移到另一个 机器运行。这与 .NET 的行为相反 构建可执行项目(应用程序)的框架 生成可在 .NET 所在的任何机器上运行的输出 框架已安装。

所以如果我在目标机器上安装了 .net core 运行时,是否可以使用 build 命令的输出?因为使用此命令,输出不包含额外的文件夹(本地化 dll、运行时文件夹等)...

另外,是否有一个参数可以与 dotnet build 命令一起使用,以便在输出文件夹中只有 MyStartupProject.runtimeconfig.json 而不是所有 runtimeconfig.json 文件(来自所有项目以及 runtimeconfig.json 的版本)。 dev.json)?

【问题讨论】:

    标签: c# build .net-core asp.net-core-webapi


    【解决方案1】:

    tl;博士

    dotnet publish 会做你想做的事


    dotnet publish command 将对您的应用程序进行完整打包,准备好在 UAT 或生产环境中运行。

    请注意

    上一段中的链接 .NET Core 2.x,但过程与 .NET Core 1.x 非常相似。链接页面在一系列选项卡中包含 .NET Core 1.x 和 2.x 的说明。

    发布命令有几个可能的参数,这些参数取决于您希望如何托管您的应用程序。例如,--self-contained 会将相关的 .NET Core 运行时与您的应用程序打包在一起,这样就可以“按原样”将其推送到服务器,而无需安装运行时。

    -r|--runtime <RUNTIME_IDENTIFIER> 也很有用。文档(前面链接)以下列方式解释它

    为给定的运行时发布应用程序。这在创建self-contained deployment (SCD) 时使用。有关运行时标识符 (RID) 的列表,请参阅 RID catalog。默认是发布framework-dependent deployment (FDD)

    您还需要考虑使用--configuration 开关,提供DebugRelease - 最好是Release。这与在 Visual Studio 中的 Debug 或 Release 中构建基本相同,只是这将发生在发布操作之前。

    以下是官方文档中对dotnet publish 命令的描述:

    dotnet publish 编译应用程序,读取项目文件中指定的依赖项,并将生成的文件集发布到目录。输出将包含以下内容:

    • 带有 dll 扩展名的程序集中的中间语言 (IL) 代码。
    • .deps.json 文件,其中包含项目的所有依赖项。
    • .runtime.config.json 文件,用于指定应用程序期望的共享运行时,以及运行时的其他配置选项(例如,垃圾收集类型)。

    应用程序的依赖项。这些从 NuGet 缓存复制到输出文件夹中。

    dotnet publish 命令的输出已准备好部署到托管系统(例如服务器、PC、Mac、笔记本电脑)以供执行,并且是唯一官方支持的准备应用程序以进行部署的方式。根据项目指定的部署类型,托管系统上可能安装或未安装 .NET Core 共享运行时。有关详细信息,请参阅.NET Core Application Deployment。已发布应用的目录结构见Directory structure

    【讨论】:

    • 我知道,但是如果我进行发布,在我的文件夹中我还会有很多本地化文件夹和一个我不需要的运行时文件夹,因为我已经有了 dot net core运行时安装。那么通过发布,我可以指定我不需要这些文件夹吗?
    • 我只想要输出构建中的应用程序二进制文件
    • 我已阅读此内容,但没有找到可以帮助我的内容。我读到的是 dotnet build 命令也接受 msbuild 工具的参数,所以也许我需要从那里使用一些东西,但我不知道......
    • 您可以查看 csproj 文件的选项。像<None Include="file_name_here.ext" CopyToPublishDirectory="Never" CopyToOutputDirectory="Never" /> 这样的东西可以工作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-08
    • 1970-01-01
    • 2019-04-26
    相关资源
    最近更新 更多