2017-02-22 66 views
2

Любая идея, как я могу найти причину этой проблемы? Терминал Mac просто отвечает «не найденной командой», пытающейся запустить основное приложение ASP.NET, опубликованное с использованием автономного развертывания.автономное приложение ASP.Net Core не работает на Mac

  • с использованием .NET Ядро SDK v.1.1
  • приложение берется из этого блога просто демо-код: https://blog.kloud.com.au/2017/02/14/running-vuejs-on-aspnet-core-apps/
  • развертывание выполняется, как описано Scott Hanselman здесь: http://www.hanselman.com/blog/SelfcontainedNETCoreApplications.aspx
  • указано время выполнения «OSX .10.12-x64" . Пытался запустить его на Mac Mini с установленной Intel Core 2 Duo и MacOS Sierra.
  • Невозможно использовать развертывание «win10-x64» на машине Win10, у которой не установлен .NET Core.
+0

Какая команда запускает эту ошибку и что такое 'ls' вывод в той же папке? Вы не раскрываете свои шаги с достаточной информацией. –

+0

Приложение для тестирования называется «VueTest», поэтому развертывание OSX содержит файл «VueTest», который я пытаюсь запустить: «VueTest» или «sudo VueTest» возвращает «команда не найдена». Папка содержит около 200 файлов, всю среду выполнения .NET (около 50 МБ, в отличие от примерно 10 МБ, когда я использую зависящее от структуры развертывание вместо автономного). –

+0

Я загрузил полную версию OSX здесь: http://www.tinybox.rocks/vuetest_osx_10_12_x64.zip Рабочее развертывание Win10 находится здесь: http://www.tinybox.rocks/vuetest_win10_x64.zip. Содержимое 2-х папок приложений почти идентичны, за исключением VueTest.exe (win) в отличие от VueTest (osx) и нескольких DLL на окнах (например, coreclr.dll), которые являются .dylib-файлами в osx (например, libcoreclr.dylib) –

ответ

2

OK. Итак, чтобы подвести итог. Microsoft делает кросс-платформенную платформу .NET Core, но разработчики Windows должны тщательно изучить некоторые MacOS и Linux ABC перед погружением в другую операционную систему.

Общие вопросы,

  1. Вам нужно запустить программу на терминале по телефону ./executable_name, и это соглашение.
  2. Вам необходимо предоставить исполняемому лицу права на выполнение, вызвав chmod a+x executable_name (для этого требуется большинство дистрибутивов Linux).