Инструменты DotNet CLI не могут использовать полную структуру

Я переношу инструмент командной строки ASP.NET Core DNX с RC1 на RC2 с помощью dotnet. Он использует полную структуру 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 и ссылаюсь на него из другого проекта в качестве инструмента.

Ожидаемое поведение

run dotnet hello Напечатает Hello World красным цветом, а затем красным цветом Test.

Это отлично работает без строки для печати Test.

Фактическое поведение

Показано следующее исключение. 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)

В этот момент я получаю диалоговое окно с запросом на отладку.

Я пробовал это с рядом других сборок с теми же результатами.

Я разместил это как проблему на dotnet/cli в GitHub, но не получил ответа. https://github.com/dotnet/cli/issues/3274

Данные об окружающей среде

Инструменты командной строки .NET (1.0.0-preview1-002702)

Информация о продукте: Версия: 1.0.0-preview1-002702 Фиксация Sha: 6cde21225e

Среда выполнения: Имя ОС: Windows Версия ОС: 10.0.10586 Платформа ОС: Windows RID: win10-x64


person EricksonG    schedule 01.06.2016    source источник
comment
Можешь закрыть это. Я думаю, что вы получили действительный ответ от команды dotnet/cli в своем запросе?   -  person Thomas    schedule 15.06.2016


Ответы (1)


Хотя это был не тот ответ, который я искал, он был адресован по адресу https://github.com/dotnet/cli/issues/3274

Суть в том, что команда .NET CLI хочет, чтобы все инструменты были кроссплатформенными, что я понимаю. Это просто создает некоторые проблемы, в то время как кросс-платформенный фреймворк не имеет всех функций полного фреймворка.

person EricksonG    schedule 17.06.2016