Неправильная версия aspnetcompiler при использовании msbuild 4.0 - PullRequest
3 голосов
/ 22 июля 2010

Я пытаюсь использовать задачу 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, а aspnet_compiler 2.0 не знает, что это такое.

Ответы [ 2 ]

11 голосов
/ 25 августа 2010

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

4 голосов
/ 22 июля 2010

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

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>
...