为什么在Visual Studio

时间:2015-12-03 20:29:05

标签: c# asp.net asp.net-mvc visual-studio-2013 .net-4.5

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

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

我已经完成了这项工作并且好像是在编译。

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

  

CS0246:类型或命名空间名称' PROJECT_A '找不到(你错过了使用指令或汇编引用吗?)

在Source Error部分中,这一行(显然)产生了错误:

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...

我说&#34;显然&#34;因为名称中不再存在 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. 中的临时文件
  4. 从代码中 PROJECT_C 搜索并替换 PROJECT_A 的所有实例(以及PROJECT_B的实例)
  5. 清理项目/解决方案
  6. 在web.config和其他地方检查名称空间
  7. ...更多我无法想到
  8. 错误仍然存​​在。

    更新进度

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

    <compilation debug="true" targetFramework="4.5.1">
    

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

    目前我已将PROJECT_B目录从主项目中排除,以保持其清洁。

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

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

    非常感谢你的帮助!我在第二天就来了!

3 个答案:

答案 0 :(得分:17)

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

同时更改<namespaces>

答案 1 :(得分:0)

在文件中使用find来查找旧项目的名称空间。

Webforms设计器文件很可能具有错误的命名空间,您应该使用find / replace修复它们。

另一个主要元凶可能是名称空间配置和类似配置中的web.config。

答案 2 :(得分:0)

您是否在.sln和.csproj文件中查找旧引用?我本人在VS中忘记删除那里的引用时遇到了一些问题。它也无法在VS中使用搜索找到它,因为文件正在使用中。