.net . Net5可执行文件依赖于json文件才能运行

xvw2m8pv  于 2023-03-20  发布在  .NET
关注(0)|答案(1)|浏览(162)

我创建了一个示例. NET 5控制台应用程序。只是一个创建一些控制台条目的小示例。

using System;
using System.Threading;

namespace ConsoleApp21
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello from the sample app creating console lines!");

            while (true)
            {
                Console.WriteLine("line ...");
                Thread.Sleep(1000);
            }

        }
    }
}

构建目录提供了以下内容...

  • /参考
  • ConsoleApp21.exe
  • ConsoleApp21.dll
  • ConsoleApp21.pdb
  • ConsoleApp21.deps.json
  • ConsoleApp21.runtimeconfig.dev.json
  • ConsoleApp21.runtimeconfig.json

现在,如果我想将应用程序分发给其他用户/PC...
我当然想留着

  • .exe(尽管我可以直接通过CLI启动dll)
  • .动态链接库

我知道我可以删除(或禁用创建)

  • /ref(引用程序集)
  • .pdb(调试符号)

我还可以删除测试

  • .runtimeconfig.dev.json

但是为什么应用程序没有2个json文件就不能运行呢?对我来说有2个额外的配置文件是绝对没有意义的。

  • .runtimeconfig.json
  • .deps.json

除了自包含构建(afaik将整个.NET运行时包含在目录中)之外,我是否有机会只使用.exe和.dll运行应用程序?
dll不应该知道它有什么依赖项(deps.json),并以某种默认方式找到.NET运行时吗?(我希望我正确理解了这两个的含义)。

ergxz8rk

ergxz8rk1#

您需要将以下行添加到项目文件中:

<PublishSingleFile>true</PublishSingleFile>

然后你需要发布这个项目,而不仅仅是编译。它会提供另一个可执行文件,里面有所有的东西。See here了解更多细节。

相关问题