2013-06-20 5 views
0

Файл проекта уже имеет рекомендуемый способ сделать это от this answer. Однако этого недостаточно для нашего дела. В другом проекте мы имеем общие представления. В нескольких файлах используются общие .master-страницы, которые вызывают ошибки компиляции при попытке использовать aspnet_compiler.Как включить просмотр файлов из другого проекта при компиляции представлений?

Я попытался реализации это таким образом:

<Target Name="AfterBuild" Condition="'$(MvcBuildViews)'=='true'"> 
    <PropertyGroup> 
    <TempFolder>$(ProjectDir)\..\temp</TempFolder> 
    </PropertyGroup> 
    <AspNetCompiler VirtualPath="temp" TargetPath="$(TempFolder)" PhysicalPath="other views location" /> 
    <AspNetCompiler VirtualPath="temp" TargetPath="$(TempFolder)" PhysicalPath="$(ProjectDir)" /> 
</Target> 

Оказывается, aspnet_compiler требует папку TargetPath быть пустым, так что это не является не идти. Попытка с помощью только VirtualPath и не TargetPath не работает, потому что VirtualPath является временным и не переносится на второй вызов компилятора.

Есть ли способ сделать это? Очевидно, мы могли копировать мастер-страницы в этот проект, но это не совсем хорошее решение.

ответ

0

Единственный способ сделать это состоит в том, чтобы скомпилировать виды Razor в DLL, чтобы они были доступны любому приложению ссылки на DLL. Для этой цели команда Razor создала Razor Generator.

+0

Этот проект использует старый движок aspx (следовательно, файлы .master). Есть ли эквивалент для этого? Это слишком много, чтобы рассмотреть возможность превращения его в Razor. – lukini

+0

Не то, чтобы я знал. Сожалею. –