2017-02-17 12 views
0

ОБНОВЛЕНОASP.Net ядро ​​не находит cshtml

Я переработан весь вопрос, потому что теперь, я знаю то, что происходит, Thx для Daboul

Когда я начинаю ASP .Net Core exe внутри VS15 или даже на линии cmd с dotnet run он работает нормально, но когда я пытаюсь дважды щелкнуть по exe для запуска, он не находит .cshtml.

Странная часть, является то, что файлы там, и обнаруживаются при исполнении vs15

Может кто-нибудь объяснить мне, что я делаю неправильно?

Я просто создать Asp.net Core, Web App и изменил project.json для получения EXE-файл, как here и here

+0

Ошибка HTTP 500 означает, что существует некоторая базовая проблема с конфигурацией, препятствующая запуску сайта или приложения, или внутренний сбой, возникший после запуска приложения.Это ужасный код «Внутренняя ошибка сервера», и если вы посмотрите в журналах, вы можете увидеть более подробные причины сбоя. Тот факт, что вы получили ошибку HTTP 500, на самом деле является доказательством того, что ваше приложение * действительно прослушивало порт 5000 или вы не видели бы этого ответа ... –

+0

К сожалению, нет журнала, я не могу понять что я должен был делать, потому что по тому, что я видел, VS15 просто запускает .exe, как запускается руками, и когда я пытаюсь запустить это вручную, это бросок http 500, а vs15 - это работа –

ответ

1

Visual Studio и dotnet run запустить приложение в папке, где ваш код существует. Это означает, что он может получить доступ к папке и файлам .cshtml, которые вы редактируете при кодировании.

Однако, когда ваш запустить приложение .exe, вы делаете это из папки публикации, для Exemple ... \ Visual Studio 2015 \ Projects \ MySolution \ SRC \ MyProject \ Bin \ Debug \ netcoreapp1.0 \ опубликуйте Я бы посоветовал вам пойти в эту папку и проверить, существует ли папка Просмотров. Если нет, то это означает, что вы просто должны опубликовать свои взгляды, добавив "**/*.cshtml" в вашем project.json:

"publishOptions": { 
    "include": [ 
     "wwwroot", 
     "**/*.cshtml" 
    ] 
    } 

Затем опубликуйте снова dotnet publish или предыдущего метода. Он должен исправить вашу проблему.

Только для ознакомления: Теперь можно предварительно скомпилировать все виды с помощью .NET Core 1.1. Это означает, что нет необходимости публиковать файлы .cshtml.

1

Вы можете видеть, что один работает в развитии (один рабочий), а другой один работает в производстве. Вы должны сначала попытаться устранить эту разницу, посмотрите, исправляет ли она проблему. Я использую файл MYEXE_DEV.bat для этого:

setlocal 
set ASPNETCORE_ENVIRONMENT=development 
yourbinary.exe 
endlocal 

Попробуйте.

ОБНОВЛЕНИЕ: Итак, давайте попробуем немного двигаться вперед. Когда вы запускаете приложение, нажав F5 в Visual Studio, обычно VS (возможно, зависит от вашего шаблона) использует файл launchSettings.json с несколькими профилями запуска, например ниже. У меня есть два предопределенных профиля IISExpress и WebApplication1, а в .json, у вас могут быть параметры, объясняющие, почему он работает под VS, но не только при двойном нажатии на exe.

enter image description here

+0

thix, это делает показать ошибку: '' InvalidOperationException: индекс «Index» не найден. Были обысканы следующие местоположения: /Views/Home/Index.cshtml /Views/Shared/Index.cshtml'' –

+0

Привет. Я попытался обновить предложение, надеюсь, это может помочь. – Daboul

Смежные вопросы