0

プロジェクト ファイルには、この回答からこれを行うための推奨される方法が既に含まれています。しかし、それは私たちの場合には十分ではありません。たまたま別のプロジェクトでビューを共有しました。いくつかのファイルは、aspnet_compiler を使用しようとするとコンパイル エラーを引き起こす共有 .master ページを使用します。

私はこの方法でそれを達成しようとしました:

<Target Name="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
  <PropertyGroup>
    <TempFolder>$(ProjectDir)\..\temp</TempFolder>
  </PropertyGroup>
  <AspNetCompiler VirtualPath="temp" TargetPath="$(TempFolder)" PhysicalPath="other views location" />
  <AspNetCompiler VirtualPath="temp" TargetPath="$(TempFolder)" PhysicalPath="$(ProjectDir)" />
</Target>

aspnet_compiler ではTargetPathフォルダーを空にする必要があるため、これは問題ありません。VirtualPaththeと noだけで試してもTargetPathうまくいきません。これVirtualPathは一時的なものであり、2 番目のコンパイラ呼び出しに持ち越されないためです。

これを達成する方法はありますか?もちろん、マスター ページをこのプロジェクトにコピーすることもできますが、それは適切な解決策ではありません。

4

1 に答える 1

0

これを行う唯一の方法は、Razor ビューを DLL にコンパイルして、その DLL を参照するすべてのアプリケーションで使用できるようにすることです。Razor チームは、この目的のためにRazor Generatorを作成しました。

于 2013-06-20T19:54:28.717 に答える