Почему ASP.NET vNext 'dnu build' не работает в OSX

Установил DNVM и DNX на OSX в соответствии с инструкциями на странице https://github.com/aspnet/Home.

Я использовал generator-aspnet для создания консольного приложения с одним исходным файлом Program.cs:

using System;

namespace HelloWorldConsole
{
    public class Program
    {
        public static void Main(string[] args)
        {
            Console.WriteLine("Hello World");
            Console.ReadLine();
        }
    }
}

и package.json:

{
    "version": "1.0.0-*",
    "dependencies": {},
    "commands": {
        "run": "run"
    },
    "frameworks": {
        "dnx451": {},
        "dnxcore50": {
            "dependencies": {
                "System.Console": "4.0.0-beta-*"
            }
        }
    }
}

Когда я запускаю его с помощью dnu . run, он работает должным образом и печатает «Hello World!».

Однако, когда я пытаюсь сгенерировать из него сборки, запустив dnu build, я получаю следующую ошибку:

Есть идеи, почему dnx. запустить работает, а сборка dnu - нет? Кажется, что на основные библиотеки ссылаются и загружаются, следовательно, запуск работает. Чего не хватает в команде сборки dnu?

Я сделал вот что:


person Ravi Amin    schedule 30.04.2015    source источник
comment
Попался. Спасибо за ссылку буду следить за ней.   -  person Diego Barros    schedule 30.04.2015
comment
Кажется, версия 4.3.0 работает неплохо. Также был написан фикс. См. github.com/aspnet/Home/issues/498 для получения дополнительной информации.   -  person Ravi Amin    schedule 01.05.2015


Ответы (3)


После этого я смог успешно запустить dnu build.

  1. заварочный кран aspnet / dnx
  2. варить апгрейд
  3. brew install dnvm --without-mono
  4. Это известная ошибка Mono: https://bugzilla.xamarin.com/show_bug.cgi?id=29499

клонируйте моно репозиторий, скомпилируйте и установите его, следуя инструкциям здесь http://www.mono-project.com/docs/compiling-mono/ (обязательно следуйте инструкциям по компиляции из источника git)

person James Pack    schedule 05.05.2015
comment
Я пробовал все как минимум 10 раз, и эти инструкции, похоже, не помогают. Кажется, эта проблема существует довольно давно, когда она будет исправлена? Это проблема команды mono или aspnet? Я не могу пользоваться товаром, пока он не заработает: \ - person Corstian Boerman; 27.05.2015
comment
Есть ли в Linux аналог этих шагов? Та же проблема существует и в Linux, но у нас нет пива. Если эти обходные пути известны, то почему бы им хотя бы не обновить документацию? Я пробовал снова и снова в течение нескольких недель, но еще не видел, чтобы ASP.NET действительно работал на Linux. - person Paully; 02.06.2015
comment
Спасибо, это сработало. На моей машине обновление варки моно заняло некоторое время. Поэтому, если вы выберете этот вариант, имейте в виду, что выполнение операции может занять некоторое время (10 минут на моей машине). Мне также пришлось запустить dnvm upgrade -u, а затем dnu restore, прежде чем все наладилось. Не знаю, всегда ли нужно последнее. - person Steve Perkins; 02.06.2015

Обсуждение здесь: https://github.com/aspnet/Home/issues/498

Проблема, похоже, заключается в том, что пивоварение указывает на версию моно, которая, похоже, не работает с последней сборкой aspnet / dnx. Вот способ указать на работоспособную версию.

person Victor Hurdugaci    schedule 30.04.2015

изменил строки 4 и 5 на

  1. cd projectdir
  2. url "http://download.mono-project.com/sources/mono/mono-4.0.1.44.tar.bz2 "sha256" eaf5bd9d19818cb89483b3c9cae2ee3569643fd621560da036f6a49f6b3e3a6f "

    варить апгрейд моно

  3. У вас должна быть возможность правильно запустить сборку dnu в проекте

  4. о моно-ошибке - Запуск первого приложения ASP.NET 5 с использованием VSCode, DNX и пустельги приводит к IOException

    • source dnvm.sh
    • dnu восстановить
    • dnu build
    • экспорт MONO_MANAGED_WATCHER = false (для монофонической ошибки см. ссылку ниже)
    • dnx. пустельга
    • откройте http://localhost:5001
    • Похоже, это известная проблема с Mono, и об ошибке уже сообщалось. К сожалению, обходного пути пока нет. github.com/aspnet/Home/issues/498

Если у вас проблемы с завариванием, воспользуйтесь пивоваром.

Спасибо salerth https://github.com/aspnet/Home/issues/498

нано /usr/local/Library/Formula/mono.rb

person Paully    schedule 06.06.2015
comment
System.IO.EndOfStreamException: не удалось прочитать последний конец потока.
в System.IO.BinaryReader.ReadChar () [0x00000] в: 0 в Microsoft.CodeAnalysis.CvtResFile.ReadStringOrID (System.IO.BinaryReader fhIn) [ 0x00000] в: 0 в Microsoft.CodeAnalysis.CvtResFile.ReadResFile (поток System.IO.Stream) [0x00000] в: 0 в Microsoft.CodeAnalysis.Compilation.MakeWin32ResourceList (System.IO.Stream win32Resources, Microsoft.CodeAnalysis.DiagnosticBox) [0x00000] в: 0 в Microsoft.CodeAnalysis.CSharp.CSharpCompilation.SetupWin32Resources (Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder moduleBeingBuilt, System.IO.Stream win32Resources, Microsoft.CodeAnalysis.Diagnostics: 0 в диагностике Microsoft.CodeAnalysis.Diagnostics) .CodeAnalysis.CSharp.CSharpCompilation.CompileImpl (Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder moduleBuilder, System.IO.Stream win32Resources, System.IO.Stream xmlDocStream, Boolean generateDebugInfo, Microsoft.CodeAnalysi s.DiagnosticBag, диагностика System.Predicate_5_1 filterOpt, CancellationToken cancellationToken) [0x00000] в: 0 в Microsoft.CodeAnalysis.Compilation.Emit (Microsoft.CodeAnalysis.EmitStreamProvider peStreamProvider, Microsoft.CodeAnalysis.EmitStreamProvider peStreamProvider, Microsoft.CodeAnalysis.EmitStreamProvider, pStreamProvider, Microsoft.CodeAnalysisrov.EmitStreamProvider, Microsoft.CodeAnalysisrov.EmitStreamProvider .CodeAnalysis.EmitStreamProvider win32ResourcesStreamProvider, IEnumerable_6_1 getHostDiagnostics, CancellationToken cancellationToken) [0x00000] в: 0 в Microsoft.CodeAnalysis.Compilation.Emit (System.IO.Stream peStream, System.IOStream. IO.Stream win32Resources, IEnumerable_7_1 getHostDiagnostics, CancellationToken cancellationToken) [0x00000] в: 0 в Microsoft.CodeAnalysis.Compilation.Emit (System.IO.Stream peStream, System.IO.Stream pdbStream, System.IO.Stream xmlDocumentation .Stream win32Resources, IEnumera ble_8_1 диагностика) [0x00000] в: 0 в Microsoft.Framework.PackageManager.BuildManager.Build () [0x00000] в: 0 в Microsoft.Framework.PackageManager.Program + ‹> c__DisplayClass3_4.b__8 () [0x00000] в: 0 в Microsoft .Framework.Runtime.Common.CommandLine.CommandLineApplication.Execute (System.String [] args) [0x00000] в: 0 в Microsoft.Framework.PackageManager.Program.Main (System.String [] args) [0x00000] в: 0 at (оболочка, управляемая собственной) System. Reflection.MonoMethod: InternalInvoke (System.Reflection.MonoMethod, object, object [], System.Exception &) в System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, связыватель System.Reflection.Binder, System.Object [ ] параметры, язык System.Globalization.CultureInfo) [0x00000] в: 0 - person GrantVS; 14.07.2015