4

カスタムmsbuildファイル内でAspNetCompilerタスクを使用して、asp .net4.0Webサイトをプリコンパイルしようとしています。しかし、私が実行すると:

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

v2.0.50727aspnet_compilerを使用します。v4.0.30319 aspnet_compilerを強制的に使用する方法はありますか?私が尋ねている理由は、私がこのエラーを受け取っているからです:

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 /

web.configでsystem.web.extensionsを使用していて、2.0 aspnet_compilerがそれが何であるかを認識していないため、正常に動作します。

4

2 に答える 2

11

ToolPath は AspNetCompiler タスクで機能しますが、正しいことは Project 要素に ToolsVersion="4.0" 属性を設定することです。これにより、すべての組み込みツールが正しいバージョンを使用し、パスのハードコーディングは不要になります。 .

于 2010-08-25T00:59:28.617 に答える
5

さて、私はたまたまもう少し検索していて、ここで自分の質問に対する答えを見つけました:

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

私が最終的に使用したのは、次のような AspNetCompiler タスクの ToolPath プロパティでした。

<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>
于 2010-07-22T18:59:01.927 に答える