今日、私はかみそりのビューでプリコンパイルをオンにしました。
mvc dllやSystem.Web.WebPagesを含め、ほとんどすべてに参照アセンブリを使用しています。
最初は、ローカルでビルドするときにSystem.Web.WebPagesのバージョンが一致しないというエラーが発生したため、Web.Configにエントリを追加しました。
<add assembly="System.Web.WebPages, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
これにより、コンパイラが参照ヒントパスなどを無視していると思われる問題が修正されました<SpecificVersion>
。
これをweb.configに含めると、ローカルビルドは正常に機能します(GACにもすべてのdllがあります)。
ビルドサーバーでビルドスクリプトを実行すると、次のエラーがスローされます。
{OurPath}\web.config (44): Could not load file or assembly 'System.Web.WebPages,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of
its dependencies. The system cannot find the file specified.
ここで何が起こっているのですか?System.Web.WebPages dllがコンパイルされた出力のビンにあることがわかりますが、ビルドサーバーがそれを見つけられないのはなぜですか?おそらく私が知らない依存関係がありますか?
次に、SpecificVersionがtrueに設定されている場合でも、projファイルのヒントパスが使用されているアセンブリに影響を与えないように見えるのはなぜですか?