13

ASP.NET MVC 4 サイトをプリコンパイルしたいのですが、Azure Web ロール内にあります。これがcshtmlビューエラーをキャッチする方法は特に素晴らしいです。

これは Web Deploy で簡単に実行できます。[発行] -> [ファイル発行オプション] で適切なボックスをいくつかチェックするだけです。

ただし、WebRole のインスタンスが複数ある場合は、Web Deploy を使用しません。そして、これらのプリコンパイル ビルド オプションを指定するための [プロジェクト] 設定 ([ビルド] タブまたは [パッケージ/発行 Web] タブ) 内にオプションが表示されません。

プロジェクト レベルでプリコンパイル オプションを指定する方法はありますか? シンプルな (しかし遅い) 「Windows Azure に公開する」オプションを使用して Azure に公開できるワークフローを終了する必要があるオプションには興味がありません (つまり、何らかの方法で手動でアップロードする必要があることに興味はありません)。 azure クラウド パッケージではありません)。

4

2 に答える 2

6

以下は、すべての人が望むものではないかもしれません.Visual Studioチームが同じことを行うための簡単なUIプロジェクト設定トグルを追加できることを願っています(これは非常に簡単な作業かもしれません). cshtml razor ファイルをコンパイルします。残念ながら、これはすべてのビルドで発生し、実際にはかなり遅くなりますが、これをリリースのみに設定する場合は、良い妥協点です:

プロジェクト フォルダーに移動し (VS でプロジェクトを右クリックし、フォルダーを開く...)、.csproj ファイルを見つけて、メモ帳 (もちろん ++) で開きますPropertyGroup。 xml ('Project') aPropertyGroupこの条件で、リリース モードのみに固有の設定を指定します (これと同じことができるデバッグ用の別の設定があります)。

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <MvcBuildViews>true</MvcBuildViews>
    <NoWarn>162, 168, 169, 219, 414, 612, 618, 649, 1591</NoWarn>
  </PropertyGroup>

単純に要素を追加MvcBuildViews(または既に存在する場合は false から変更) し、値が true であることを確認すると、突然、すべてのビルドにかなりの時間がかかることに気付くでしょう [ここに笑顔のウィンクの絵文字を挿入]。しかし、かみそりのコードをコンパイルすると、望んでいたようにエラーがキャッチされます。非常に素晴らしいことです。そのため、チームは既にこれを組み込みましたが、奇妙なことに、MVC プロジェクト設定に UI オプションを追加していません。

これは私の最初の質問への答えだと思います:「どうにかしてプロジェクト レベルでプリコンパイル オプションを指定する方法はありますか?」オンラインのどこかにあると思う答えを見つけました。今はどこにあるか覚えていません。SO のどこかにあると確信しています。この質問に再び光を当ててくれた David に感謝します。

于 2014-12-17T19:22:03.840 に答える