問題は中間ファイルに関係していますが、ビューを作成する前にこれらの中間ファイルをクリーンアップするという別の解決策があります。 
このソリューションは一部のバージョンのVSに含まれていますが、VS 2013 Update 5で問題があったとしか言えません(以下の「注意」を参照してください。このバージョンでは修正できますが、特定のバージョンでのみ機能するわけではありません)非標準の場合)。
Error:allowDefinition = 'MachineToApplication'の解決策をVisual Studio Connectのアプリケーションレベルを超えて借りました。 
解決策は.csproj、関連する中間ファイルの削除を処理するWebアプリケーションプロジェクト(ファイル)に次の行を含めることです。
<!--Deal with http://connect.microsoft.com/VisualStudio/feedback/details/779737/error-allowdefinition-machinetoapplication-beyond-application-level, 
we will need to clean up our temp folder before MVC project starts the pre-compile-->
<PropertyGroup>
    <_EnableCleanOnBuildForMvcViews Condition=" '$(_EnableCleanOnBuildForMvcViews)'=='' ">true</_EnableCleanOnBuildForMvcViews>
</PropertyGroup>
<Target Name="CleanupForBuildMvcViews" Condition=" '$(_EnableCleanOnBuildForMvcViews)'=='true' and '$(MVCBuildViews)'=='true' " BeforeTargets="MvcBuildViews">
    <ItemGroup>
     <_PublishTempFolderNamesToCleanup Include="Database;TransformWebConfig;CSAutoParameterize;InsertAdditionalCS;ProfileTransformWebConfig;Package;AspnetCompileMerge" />
    </ItemGroup>
    <!--Force msbuild to expand all the wildcard characters so to get real file paths-->
    <CreateItem Include="@(_PublishTempFolderNamesToCleanup->'$(BaseIntermediateOutputPath)**\%(identity)\**\*')">
     <Output TaskParameter="Include" ItemName="_EvaluatedPublishTempFolderNamesToCleanup" />
    </CreateItem>
    <Delete Files="@(_EvaluatedPublishTempFolderNamesToCleanup)" />
</Target>
注意:なんらかの理由で、おそらく自分でプロジェクトに含めたため、ビューをビルドするためのビルドターゲットの名前は"BuildViews"でなくだった"MvcBuildViews"ため、それにBeforeTargets応じて属性を変更する必要がありました。次のPropertyGroupように、条件を削除して単純化することにより、ターゲットも単純化しました。
  <Target Name="CleanupForBuildMvcViews" Condition="'$(MVCBuildViews)'=='true' " BeforeTargets="BuildViews">
    <ItemGroup>
     <_PublishTempFolderNamesToCleanup Include="Database;TransformWebConfig;CSAutoParameterize;InsertAdditionalCS;ProfileTransformWebConfig;Package;AspnetCompileMerge" />
    </ItemGroup>
    <!--Force msbuild to expand all the wildcard characters so to get real file paths-->
    <CreateItem Include="@(_PublishTempFolderNamesToCleanup->'$(BaseIntermediateOutputPath)**\%(identity)\**\*')">
     <Output TaskParameter="Include" ItemName="_EvaluatedPublishTempFolderNamesToCleanup" />
    </CreateItem>
    <Delete Files="@(_EvaluatedPublishTempFolderNamesToCleanup)" />
  </Target>