Я выполнил статью this, чтобы настроить развертывание ядра ASP.NET Core с использованием Docker. Это работает, пока я пытаюсь запустить контейнер с помощью docker run
, который вызывает Там я получил исключение, что View путь не существует:«Имя каталога/приложение/Представления/недействительно» в развертывании основного ядра ASP.NET с использованием докеры
Необработанное исключение: System.Reflection.TargetInvocationException: Исключение было брошено по цель вызова. ---> System.ArgumentException: имя каталога/app/Views/недействительно.
И это правда, потому что в папке, созданной dotnet publish
области только DLL файлы и нет Просмотр папки:
[email protected]:/etc/jenkins/workspace/App# ll publish-output | grep View
-rwxr--r-- 1 root root 237K Aug 31 19:26 Microsoft.AspNetCore.Mvc.ViewFeatures.dll
Я не могу понять это, потому что представление папки включена в publishOptions
как Wwwroot тоже , который также отсутствует:
"publishOptions": {
"include": [
"wwwroot",
"Views/**/*.cshtml",
"Areas/**/*.cshtml"
]
},
Я также попытался "Views"
вместо "Views/**/*.cshtml"
, но не работает. По моему мнению, эти publishOptions
должны привести к копированию этих папок в каталог публикации при использовании dotnet publish
.
Что я делаю неправильно?
Я использую изображение microsoft/aspnetcore-build:1.0.1
для строительства и microsoft/aspnetcore:1.0.1
для запуска приложения, как рекомендуется в качестве лучшей практики в этой статье.
ОБНОВЛЕНИЕ Кажется, проблема связана только с Linux. Моя машина разработки Win10 работает отлично, там я получаю любые папки просмотра, опубликованные из основного приложения и областей, как ожидалось.
ОБНОВЛЕНИЕ # 2 Используя примеры на aspnetcore-build repo на докере-хабе, его тоже не работает.
UPDATE # 3 Я создал новый проект ASP.NET Core MVC на своей машине разработки под Windows 10 с помощью Visual Studio, а затем передал ее в окно linux: не работает, представления отсутствуют.
ОБНОВЛЕНИЕ # 4 Создано новое приложение с использованием dotnet new -t web
непосредственно в окне linux: работает, как и ожидалось!
UPDATE # 5 я побежал dotnet new -t web
на машине Windows, переместил созданную папку на сервере Linux: не работает - Странно ...