Как создать приложение vNext из Windows Powershell?

Я пытаюсь создать консольное приложение в .NET vNext из Windows PowerShell. Пока я обновил пакет

kvm upgrade

из которого я получил версию пакета "KRE-svr50-x86.1.0.0-alpha3-10070", а также проверил "псевдоним", чтобы соответствовать версии.

Теперь я написал консольное приложение, содержащее следующие строки:

using System;

public class Program
{
    public static void Main()
    {
        Console.WriteLine("Why Soo serious!!!! ");
    }
}

и подпишите project.json

{
  "dependencies": {
    "System.Console": "4.0.0.0"
  },
  "configurations": {
    "net45": {},
    "k10": {}
  }
}

И теперь, всякий раз, когда я пытаюсь запустить это из Windows Poweshell, он перечисляет отсутствующую DLL (в частности, пространство имен System) ниже сборки:
(как файлы json, так и cs в одной папке, поэтому ошибка, связанная с json)

kpm build

(1,12): ошибка CS0246: имя типа или пространства имен 'System' не удалось найти (вы не указали директиву использования или ссылку на сборку?)

Как передать библиотеку. Пожалуйста, помогите мне найти, где (что) мне не хватает и как это исправить...

Ответ 1

Ваша проблема связана с конфигурацией nuget.

Чтобы увидеть, как он работает, перейдите в папку project.json и выполните "восстановление kpm". вы увидите:

Не удалось найти System.Console >= 4.0.0.0

Это происходит потому, что kpm использует другой репозиторий самородок, а именно: https://www.myget.org/F/aspnetvnext/

В этом репозитории нет пакета nuget для System.Console

Для этого вам понадобится файл NuGet.Config, расположенный за пределами вашей папки project.json, в которой вы укажете стандартный репозиторий nuget (чтобы получить пакет System.Console) и репозиторий asp.net vnext, чтобы вы могли получить asp.net vnext конкретные репозитории.

Этот файл должен выглядеть примерно так:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="AspNetVNext" value="https://www.myget.org/F/aspnetvnext/" />
    <add key="NuGet.org" value="https://nuget.org/api/v2/" />
  </packageSources>
  <packageSourceCredentials>
    <AspNetVNext>
      <add key="Username" value="aspnetreadonly" />
      <add key="ClearTextPassword" value="4d8a2d9c-7b80-4162-9978-47e918c9658c" />
    </AspNetVNext>
  </packageSourceCredentials>
</configuration>

Также обратите внимание на структуру вашей папки:

/ - root folder
- NuGet.config
- your project folder
-- project.json
-- source code files

После того, как вы создали структуру папок в качестве примера и поместили NuGet.config в нужное место, вы выполните "kpm restore", и вы увидите, что System.Console разрешен, а затем выдает "kpm build", все строит правильно

Ответ 2

Если у вас все еще есть эта проблема, и мне было 10.10, попробуйте изменить файл project.json на это:

"dependencies": {
  "System.Console": "4.0.0-beta-22210"
},

(помните, что это нужно будет обновить, так как System.Console изменен, но по крайней мере вы сможете скомпилировать сегодня).