DotNet CLI工具使用完整框架失败

时间:2016-06-01 14:44:47

标签: command-line-interface .net-core dotnet-cli

我正在使用dotnet将一个ASP.NET Core DNX命令行工具从RC1移植到RC2。它使用完整的框架4.5.1。我把它剥离到一个非常简单的项目。我怀疑是我遗漏了一些基本的东西,但我似乎无法找到平行的例子。如果这是一个简单的解决方案,请提前道歉。

重现的步骤

这是我的project.json文件。

{
  "version": "1.0.2-alpha001",
  "description": "Tools.Cli Class Library",
  "authors": [ "Test" ],
  "buildOptions": {
    "emitEntryPoint": true,
    "outputName": "dotnet-hello"
  },
  "dependencies": {
    "Microsoft.DotNet.Cli.Utils": "1.0.0-preview1-002702"
  },
  "frameworks": {
    "net451": { }
  }
}

这是我的program.cs文件。

using System;
namespace Tools.Cli
{
    public class Program
    {
        public static int Main(string[] args)
        {
            Console.WriteLine("\x1B[31m" + "Hello World" + "\x1B[39m");
            // The following line causes the error. Commenting out this line allows this to run.
            Console.WriteLine(Microsoft.DotNet.Cli.Utils.AnsiColorExtensions.Red("Test"));
            return 0;
        }
    }
}

我正在创建一个NuGet包,并将其作为工具从另一个项目中引用。

预期行为

运行dotnet hello 用红色打印Hello World,然后用红色打印。

这完美无需打印测试线。

实际行为

显示以下异常。 Hello World未打印。

dotnet hello
Unhandled Exception: System.IO.FileNotFoundException: 
    Could not load file or assembly 'Microsoft.DotNet.Cli.Utils, Version=1.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' or one of its dependencies. 
    The system cannot find the file specified.
    at Tools.Cli.Program.Main(String[] args)

此时我收到一个错误对话框提示调试。

我已尝试使用其他一些具有相同结果的程序集。

我在GitHub上的dotnet / cli上发布了这个问题,但没有收到回复。 https://github.com/dotnet/cli/issues/3274

环境数据

.NET命令行工具(1.0.0-preview1-002702)

产品信息:  版本:1.0.0-preview1-002702  承诺沙:6cde21225e

运行时环境:  操作系统名称:Windows  操作系统版本:10.0.10586  操作系统平台:Windows  RID:win10-x64

1 个答案:

答案 0 :(得分:0)

虽然它不是我想要的答案,但它已经解决了 https://github.com/dotnet/cli/issues/3274

最重要的是,.NET CLI团队希望所有工具都是跨平台的,我理解。它只是提出了一些问题,而跨平台框架并没有完整框架的所有功能。