Asp.net MvcBuildViews生成的文件似乎多于.csproj文件中包含的文件

Asp.net MvcBuildViews生成的文件似乎多于.csproj文件中包含的文件,asp.net,asp.net-mvc,Asp.net,Asp.net Mvc,是否有任何方法将视图建筑限制为仅包含在.csproj文件中的文件?或者是否至少有一种方法可以将某些文件夹排除在生成之外 在我们的项目文件夹结构中,我们有一个\Admin\Mocks文件夹,其中包含大量模拟的.aspx和.cshtml文件,虽然\Admin\Mocks文件夹不包含在.csproj文件中(尽管\Admin是),但该树中的所有文件似乎都在生成中。这当然会产生很多构建错误 我不确定这会有什么不同,但我们的项目是一个混合的WebForms/Mvc3应用程序(WebForms和Razor视图

是否有任何方法将视图建筑限制为仅包含在.csproj文件中的文件?或者是否至少有一种方法可以将某些文件夹排除在生成之外

在我们的项目文件夹结构中,我们有一个\Admin\Mocks文件夹,其中包含大量模拟的.aspx和.cshtml文件,虽然\Admin\Mocks文件夹不包含在.csproj文件中(尽管\Admin是),但该树中的所有文件似乎都在生成中。这当然会产生很多构建错误


我不确定这会有什么不同,但我们的项目是一个混合的WebForms/Mvc3应用程序(WebForms和Razor视图引擎),使用Asp.Net 4。

如果可能,创建一个单独的web项目,并将不希望构建的内容放在其中,确保将MVCBuildViews设置为false。

基于时间戳,我假设您最终解决了这个问题,但我在这里搜索了相同问题的解决方案

我们有一堆旧的Webforms视图,在更新应用程序时,这些视图仅签入(项目未引用)用于参考目的和a/B测试。(Webforms->Razor、MVC2->MVC4等)

这是一个问题,因为正在生成.cshtml和.aspx文件,并且来自Webform视图的错误正在破坏生成

我们的解决方案是将旧视图文件从Index.aspx重命名为Index.aspx.old

(在您的情况下,我建议Index.aspx.mock?)

这意味着它们被排除在MvcBuildViews=True处理之外,但仍然可以轻松访问并从Visual Studio中打开


另外一个好处是,您可以将该扩展的默认打开方式更改为使用Webforms编辑器,这样您仍然可以获得高亮显示和全部显示。

+1。永远不要在你真正的应用程序中放模拟的东西。墨菲定律说它会“泄露”。模拟软件不在“真正的”应用程序中——它们不包括在csproj中,也从未部署过。让mock位于我们正常的文件夹结构之外会使引用css/js/image资源变得更加困难。此外,由于这是一个遗留项目,实际拉出Mock(其他文件夹-Mock只是一个示例)对我们来说并不可行。好的,然后复制web项目,但将名称空间重命名为“MyWebSite.Mock”或“MyWebSite.copy”,并将MVCBuildViews设置为false。这解决了问题,mvc构建被排除的项目文件真的很奇怪。