【问题标题】:dotnet core build and json files created创建了 dotnet 核心构建和 json 文件
【发布时间】:2018-06-18 21:21:07
【问题描述】:

如果我有以下情况:

using log4net;
using log4net.Config;
using System;
using System.IO;
using System.Reflection;

namespace CoreTestLog4Net
{
    class Program
    {
        static void Main(string[] args)
        {
            var logRepository = LogManager.GetRepository(Assembly.GetEntryAssembly());
            XmlConfigurator.Configure(logRepository, new FileInfo("log4net.config"));

            var log = log4net.LogManager.GetLogger(typeof(Program));

            log.Info("test");



            Console.WriteLine("Hello ld!");
            Console.Read();
        }
    }
}

我在 powershell 中执行以下操作,模拟在构建服务器上打包应用程序的操作:

`dotnet publish --output test

我做 ls .\CoreTestLog4Net\test 我明白了:

   Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       09/01/2018     18:24           3584 ClassLibraryA.dll
-a----       09/01/2018     18:24            244 ClassLibraryA.pdb
-a----       09/01/2018     18:51          55755 CoreTestLog4Net.deps.json
-a----       09/01/2018     18:24           5120 CoreTestLog4Net.dll
-a----       09/01/2018     18:24            588 CoreTestLog4Net.pdb
-a----       09/01/2018     18:51            154 CoreTestLog4Net.runtimeconfig.json
-a----       09/01/2018     13:28            447 log4net.config
-a----       08/03/2017     19:26         221184 log4net.dll

然后我执行 dotnet .\CoreTestLog4Net\test3\CoreTestLog4Net.dll 来运行应用程序。

我的问题是这两个 json 文件是关于什么的?

如果我删除它们会出错

在部署到另一台机器时,它们是否必须作为部署的一部分进行部署?

【问题讨论】:

    标签: .net-core


    【解决方案1】:

    json文件很重要,部署时需要包含,因为:

    • .runtimeconfig.json 告诉主机(例如dotnet.exe)运行应用程序的框架+版本。例如。如果您同时安装了 .NET Core 1.1 和 2.0,此文件将决定使用哪一个。此外,它包含用于配置运行时和主机设置的标志,例如垃圾收集设置。
    • .deps.json 包含有关引用的包和程序集的信息。 .NET Core 应用程序可以从包缓存中引用程序集,因此您的构建不需要将来自 NuGet 包的所有 DLL 复制到输出文件夹。 dotnet publish 的输出将包含分发所需的所有文件。它还用于解析默认情况下未添加到发布输出的 ASP.NET Core 运行时存储的资产,因为它们应该存在于目标服务器上。

    【讨论】:

    • Martin,您没有直接回答“是”我需要部署这些文件,但从您的回答中我认为是的?
    • 将其添加到答案中。是的。
    • 真的没有办法从最终输出中删除它们吗?
    猜你喜欢
    • 1970-01-01
    • 2020-02-18
    • 1970-01-01
    • 1970-01-01
    • 2017-06-10
    • 2018-12-07
    • 1970-01-01
    • 2013-07-01
    • 1970-01-01
    相关资源
    最近更新 更多