Я пишу своего рода систему плагинов в ASP.NET Core 2.2.Это работает хорошо, но физический путь к папке Области не указывается, как я ожидал.Интересно, знает ли кто-нибудь, как указать физический путь к папке для корневой области.
Структура папок похожа на приведенную ниже.TestArea в этом дереве - это отдельный проект для области плагина.Проект TestArea устанавливает для флагов RazorCompileOnBuild и RazorCompileOnPublish значение false, поскольку имя области можно динамически изменять для поддержки архитектуры подключаемых модулей.Проект TestArea имеет файл cshtml (* 1).
Чтобы протестировать приложение из отладчика, необходимо скопировать файлы Area в корень основного проекта приложения (* 2).Это не удобно, но достаточно справедливо.
\NoPrecompileView
\Areas
\TestArea
\Views
\Test
TestPage.cshtml (*2)
\bin
\Release
\netcoreapp2.2
\publish (*4)
\Areas
\TestArea
\Views
\Test
TestPage.cshtml (*3)
\Controllers
\Models
\Views
\wwwroot
\TestArea
\Areas
\TestArea
\Views
\Test
TestPage.cshtml (*1)
\Controllers
Когда я публикую проект в локальной папке, я получаю копию папки Areas (* 3) в папке публикации (* 4).Поэтому ожидается обращение к представлению (* 3) во время выполнения.Однако когда я запускаю 'dotnet NoPrecompileView.DLL' в папке публикации (* 4), приложение неожиданно все еще ссылается на файл в главной папке проекта (* 2).
Технически я могу развернуть приложение, сохраняяэта структура папок, однако я предпочитаю указывать физическую корневую папку для областей.
Мой тестовый проект можно найти здесь.
https://github.com/hayashida-katsutoshi/NoPrecompileView/tree/master/NoPrecompileView