Неправильная версия aspnetcompiler при использовании msbuild 4.0

Я пытаюсь использовать задачу AspNetCompiler в пользовательском файле msbuild для предварительной компиляции веб-сайта asp .net 4.0. Тем не менее, когда я бегу:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe custom.msbuild /t:PrecompileWeb

он использует aspnet_compiler версии 2.0.50727. Есть ли способ заставить его использовать aspnet_compiler v4.0.30319? Причина, по которой я спрашиваю, заключается в том, что я получаю эту ошибку:

ASPCONFIG: Unrecognized configuration section system.web.extensions.

Однако, если я бегу:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler.exe -p .\My.Web.Site -f .\.PRECOMPILATION -v /

Он работает нормально, что имеет смысл, потому что я использую system.web.extensions в web.config, а 2.0 aspnet_compiler не знает, что это такое.

2 ответа

Решение

ToolPath работает для задачи AspNetCompiler, но для этого нужно просто установить атрибут ToolsVersion="4.0" в элементе Project - это заставит все встроенные инструменты использовать правильную версию и не требует жесткого кодирования путей.,

Что ж, мне довелось искать еще немного, и я нашел ответ на свой вопрос здесь:

http://blogs.msdn.com/b/webdevtools/archive/2010/05/14/the-aspnet-compiler-build-task-in-visual-studio-2010-asp-net-mvc-2-projects.aspx

В итоге я использовал свойство ToolPath для задачи AspNetCompiler следующим образом:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Target Name="PrecompileWeb">
        <AspNetCompiler
            VirtualPath="/MyWebSite"
            PhysicalPath="c:\inetpub\wwwroot\MyWebSite\"
            TargetPath="c:\precompiledweb\MyWebSite\"
            Force="true"
            Debug="true"
            ToolPath="C:\Windows\Microsoft.NET\Framework\v4.0.30319\"
        />
    </Target>
</Project>
Другие вопросы по тегам