2016-06-06 7 views
0

Фон: Я пытаюсь создать шаблон для ASP.NET MVC с использованием Visual Studio 2013 Ultimate Update 5. Чтобы начать, я создаю веб-приложение из пустого шаблона и включаю ссылки MVC. Затем я добавляю все основные необходимые компоненты для приложения, такие как модель, контроллер и представления. Затем я запускаю его, и он работает. Затем я экспортирую его в качестве шаблона проекта.Как создать собственный шаблон проекта ASP.NET MVC?

В прошлом я успешно создал шаблоны для приложений Web Api и Console с использованием вышеуказанного метода.

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

Debugging Not Enabled Image

Согласно как сообщение об ошибке и Microsoft, я должен быть в состоянии решить эту проблему, поместив следующий код в моем файле Web.config:

<system.web> 
    <compilation debug="true" targetFramework="4.5.1"/> 
    <httpRuntime targetFramework="4.5.1"/> 
    </system.web> 

Однако, это уже присутствует, а поле диалога сохраняется.

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

HTTP Error 500.19 - Internal Server Error

The requested page cannot be accessed because the related configuration data for the page is invalid.

Попытки решить:

  1. Удаляется как Web.config и web.config файлы и импортированные из существующих решений, которые работают.
  2. Выбрано «Добавить новый файл Web.config с включенной отладкой», , который перезаписывает существующий файл Web.config и web.config. Хотя Visual Studio может перезаписывать Web.config, он не может перезаписать web.config («Операция не может быть выполнена. Не выполнено » появляется в диалоговом окне).
  3. Добавлен вышеуказанный тег system.web в web.config.
  4. Ensured that the Asp.Net debugger is enabled in property settings
  5. Очищенные и удалить вручную существующее .dlls перед запуском
  6. неустановленных и переустановил ASP.NET MVC с NuGet

Update:

Вместо использование шаблона экспорта в Визуальном Studio, я установил TemplateBuilder and SideWaffle и выполнил связанные видеоинструкции для создания пользовательского шаблона проекта. Тем не менее, я получаю следующее сообщение об ошибке при попытке создать новый проект из шаблона:

enter image description here

Эта ошибка была open issue within github с апреля, так что кажется я не повезло.

Второе обновление: Cause Analysis Root

я определил основную причину того, почему проекты, основанные на экспортируемый шаблон потерпеть неудачу. Сравнивая ссылки на базовых и производных проектов показывает следующее:

Derived:

<Reference Include="System.Web.Razor"> 
    <HintPath>..\..\..\..\..\..\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v2.0\Assemblies\System.Web.Razor.dll</HintPath> 
</Reference> 

Base:

<Reference Include="System.Web.Razor"> 
    <HintPath>..\packages\Microsoft.AspNet.Razor.3.2.3\lib\net45\System.Web.Razor.dll</HintPath> 
</Reference> 

После того, как HintPaths в производном проекта сбрасываются на те основания, производный проект выполняется успешно (нет диалогового окна «Отладка не включена»).

Вопрос становится: «Как я могу гарантировать, что HintPaths производного проекта автоматически устанавливаются в соответствующие значения?»

+0

Вы пытались запустить Visual Studio в качестве администратора? У меня были проблемы до очень похожего на это, и это было трюк, но это было не то же самое. –

+0

Просто попробовал. Я все еще получаю диалог. – bwyn

ответ

0

Я был в состоянии создать шаблон рабочего MVC, используя следующие методы:

В базовом проекте:

В файле csproj, ссылки на соответствующие MVC библиотеки являются в следующем Форма:

<Reference Include="System.Web.Razor"> 
    <HintPath>\\BILL\Users\Popper\Desktop\Stackoverflow\UNCPathNonSpecificPrivateReferences\packages\Microsoft.AspNet.Razor.3.2.3\lib\net45\System.Web.Razor.dll</HintPath> 
    <SpecificVersion>False</SpecificVersion> 
    <Private>True</Private> 
</Reference> 

В частности, путь UNC к dll предотвращает перезапись HintPath.

В полученном проекте:

После сохранения и строительства, я закрыть и снова открыть проект.