.net core 创建的dotnet核心构建和json文件

.net core 创建的dotnet核心构建和json文件,.net-core,.net Core,如果我有以下资料: 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.G

如果我有以下资料:

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发布--输出测试

我做ls。\coretslog4net\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。\coretslog4net\test3\coretslog4net.dll来运行应用程序

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

如果我删除它们,我会得到一个错误


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

json文件非常重要,在部署时需要包括这些文件,因为:

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

Martin,您没有直接回答“是”,我需要部署这些文件,但从您的回答来看,我认为是的?将其添加到了回答中。是的。真的没有办法从最终输出中删除它们吗?