对构建.NET Core

时间:2018-03-23 14:28:06

标签: c# .net-core

我的测试应用非常简单:

using System;
using System.Linq;
using System.Management.Automation;

namespace CoreTest
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Waiting...");
            Console.ReadKey();
            using (var ps = PowerShell.Create())
            {
                ps.Commands.AddCommand("Get-Host");
                var result = ps.Invoke();
                Console.WriteLine(result.FirstOrDefault()?.Members?["Name"]?.Value);
            }
            Console.WriteLine("Waiting...");
        }
    }
}

它所做的就是使用powershell显示主机名,它主要起作用。

然而,构建部分非常混乱。

  1. 如果我只是构建它并将bin文件夹复制到Linux主机,它就不起作用,说它找不到一些预期的包。
  2. 如果我发布并复制生成的文件夹而不更改Visual Studio中的任何内容它可以工作,但结果文件夹是130MB,这表明出现了问题。 检查发布文件夹显示其大部分是runtimes文件夹,我在不同平台目标的文件夹中使用了dll(System.Management.Automation.dllMicrosoft.PowerShell.SDK.dll等)的副本(win10-x64,{ {1}}等等。 文档表明,这种(依赖于框架的部署)是部署需要应用程序的小型.net核心安装的方式,但正如您可以看到简单的文件夹大小绝对不是最理想的。
  3. 如果我开始定位特定平台(这是文档建议如何部署更大的.net核心安装独立应用程序,“依赖于框架的部署”),方法是将linux-x64添加到RuntimeIdentifiers文件中,大小确实变小了(大约70MB),但结果仍然拒绝在我的测试ubuntu机器上工作: run error
  4. 我错过了什么?

    所有我想要的是合理大小的文件夹,dll保证在目标机器上运行 - 比如Ubuntu one。

0 个答案:

没有答案