为什么在Visual Studio上的临时文件中仍然引用旧的项目名称

Jim*_*wak 8 c# asp.net asp.net-mvc .net-4.5 visual-studio-2013

我创建并完全烘焙了MVC C#intranet PROJECT_A.然后我创建并完全烘焙了WebForms C#intranet PROJECT_B.

现在我需要将两者合并为一个组合MVC/WebForms C#PROJECT_C.

我已经完成了这个并且好像在编译.


但是 ......当我在我的VS2013 Ultimate内部启动新的PROJECT_C时,我在结果索引页面上出现错误...

CS0246:找不到类型或命名空间名称' PROJECT_A '(您是否缺少using指令或程序集引用?)

在源错误部分是这条线(显然)产生错误:

Line 1:    #pragma checksum "C:\...\PROJECT_C\Views\CONTROLLERNAME\Index.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "56225EBEFF70A747D10FB7D43A7A8EFCE86DAF72"
Line 2:    //------------------------------------------------------------------------------
Line 3:    // <auto-generated>
Line 4:    //     This code was generated by a tool.
Line 5:    //     Runtime Version:4.0.30319.34209
Line 6:    //
Line 7:    //     Changes to this file may cause incorrect behavior and will be lost if
Line 8:    //     the code is regenerated.
Line 9:    // </auto-generated>
Line 10:   //------------------------------------------------------------------------------
Line 11:   
Line 12:   namespace ASP {
Line 13:       using System;
Line 14:       using System.Collections.Generic;
Line 15:       using System.IO;
Line 16:       using System.Linq;
Line 17:       using System.Net;
Line 18:       using System.Web;
Line 19:       using System.Web.Helpers;
Line 20:       using System.Web.Security;
Line 21:       using System.Web.UI;
Line 22:       using System.Web.WebPages;
Line 23:       using System.Web.Mvc;
Line 24:       using System.Web.Mvc.Ajax;
Line 25:       using System.Web.Mvc.Html;
Line 26:       using System.Web.Optimization;
Line 27:       using System.Web.Routing;
Line 28:       using PROJECT_A; //error line...
Line 29:       
Line 30:       
Line 31:       public class _Page_Views_CONTROLLERNAME_Index_cshtml : System.Web.Mvc.WebViewPage<PROJECT_C.Models.Search> {
Line 32:           
Line 33:   #line hidden...
Run Code Online (Sandbox Code Playgroud)

我说"显然"因为PROJECT_A不再存在于名称中.只有PROJECT_C,我正试图敲击这一轮钉!

据称产生错误的源文件列为:

c:\ Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\14bee5fc\75cf6bf4\App_Web_index.cshtml.8117ffad.9pjm2azc.0.cs


为了解决这个问题,我做了以下工作:

  1. 已清除%temp%文件
  2. 清除c:\ Windows\Microsoft.NET\Framework \和c:\ Windows\Microsoft.NET\Framework64 \中的临时文件
  3. 从代码中搜索并替换PROJECT_A的所有实例(以及PROJECT_B的实例)和PROJECT_C
  4. 清理项目/解决方案
  5. 在web.config和其他地方检查名称空间
  6. ...更多我无法想到的

错误仍然存​​在.


更新进度:

我注意到.net版本可能存在差异.我的目标版本是4.5.1.但是,我认为这可能只在临时目录名称中.您可以在上面粘贴的源代码中看到它.这是我的web.config

<compilation debug="true" targetFramework="4.5.1">
Run Code Online (Sandbox Code Playgroud)

我再次梳理了我的代码,寻找对旧项目和旧类的错误引用,似乎找不到任何东西.我甚至查看了bin /中的config.dll.我正在寻找名称空间声明和使用.

目前我已经从主项目中排除了PROJECT_B目录,只是为了保持干净.

我真的不想重新开始一个新的MVC项目,因为我已经做到了.但我可能不得不这样做.


我一直非常小心地尽可能多地包含信息.如果我遗漏任何东西,请告诉我.

非常感谢你的帮助!我在第二天就这个!

小智 17

还有一个要检查的区域是位于Views文件夹下的web.config文件,如果它被Visual Studio排除,则查找/替换可能找不到它.

也改变<namespaces>那里.


Chr*_*sic 0

使用 find in files 查找旧项目的命名空间。

最有可能的是,网络表单设计器文件有错误的命名空间,您应该使用查找/替换来修复它们。

另一个罪魁祸首可能是命名空间配置和类似配置中的 web.config。