我创建并完全烘焙了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
为了解决这个问题,我做了以下工作:
错误仍然存在。
更新进度
我注意到.net版本可能存在差异。我的目标版本是4.5.1。但是,我认为这可能只在临时目录名称中。您可以在上面粘贴的源代码中看到它。这是我的web.config
<compilation debug="true" targetFramework="4.5.1">
我再次梳理了我的代码,寻找旧项目和旧类的错误引用,似乎找不到任何内容。我甚至查看了bin /中的config.dll。我正在寻找命名空间声明和使用。
目前我已将PROJECT_B目录从主项目中排除,以保持其清洁。
我真的不想重新开始一个新的MVC项目,因为我已经做到了。但我可能不得不这样做。
我非常小心地尽可能多地包含信息。如果我遗漏了任何东西,请告诉我。
非常感谢你的帮助!我在第二天就来了!
答案 0 :(得分:17)
要检查的另一个区域是位于Views文件夹下的web.config文件,如果它被Visual Studio排除,则查找/替换可能找不到它。
同时更改<namespaces>
。
答案 1 :(得分:0)
在文件中使用find来查找旧项目的名称空间。
Webforms设计器文件很可能具有错误的命名空间,您应该使用find / replace修复它们。
另一个主要元凶可能是名称空间配置和类似配置中的web.config。
答案 2 :(得分:0)
您是否在.sln和.csproj文件中查找旧引用?我本人在VS中忘记删除那里的引用时遇到了一些问题。它也无法在VS中使用搜索找到它,因为文件正在使用中。