将项目转换为VS 2010时的命名空间错误

时间:2013-01-25 15:38:03

标签: c# visual-studio namespaces migration compatibility

因此,我是一名资深程序员,已经被指派了解一个正在开发中的应用程序(在VS2005中,然后在2008年)已经有一段时间了。在项目的整个生命周期中,其中的命名惯例变得有些复杂。为了举例,这里是一个命名结构。

  

_MegaCorp.sln

     
    

Application_Install

         

Megacorp

         
      

DbResources.csproj

             

Forms

             
        

Megacorp.Forms.Concept.csproj

                 
          

Properties

                     

Resources

                     

Megacorp

                     
            

Forms

                         
              

Concept

                             
                

xyz.cs

              
            
          
        
      
    
  

这可能不是组织信息的最佳方式,但它在VS2008中运行良好。更新到VS2010不需要对现有代码进行大修,对吗?

正在发生的事情是:当xyz调用DbResources时,visual studio正在查看Megacorp.Forms.Concept.Megacorp,而不是在父Megacorp文件夹中。所有正确的引用和使用语句都是有序的:正如我所说的,在VS2008中一切正常。这里发生了什么?

    Error   826 The type or namespace name 'xxx' does not exist in the namespace 'MegaCorp.Forms.Concept.Megacorp.Forms.Concept' (are you missing an assembly reference?)   C:\x\y\c-sharp\Megacorp\Forms\Concept\ConstructEditor.Designer.cs   99  63  MegaCorp.Forms.Concept

更新:如果我在每次使用xyz.cs中的类之前添加global::,这可以解决问题。但是,大约有1,000,000行代码,编译器报告了400多个错误。我敢肯定,如果我梳理了400个错误中的每个错误,在每个错误之前粘贴global::,就会出现更多错误。必须有另一种方法来实现这一点,因为该解决方案还包括一个在VS2008中编译的非常实用且正在使用的应用程序。 谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

我有类似的问题,发现它与目标框架有关。检查所有添加的引用是否都是针对同一Target Framework的解决方案。