Vb.net Visual Studio 2008构建解决方案问题

Vb.net Visual Studio 2008构建解决方案问题,vb.net,winforms,visual-studio-2008,build-process,Vb.net,Winforms,Visual Studio 2008,Build Process,我们有一个使用3.5框架开发的VB.NET Windows窗体解决方案 该解决方案有30多个相互引用的项目(DLL)。我们甚至将一些项目划分为N个层(一个用于数据访问,另一个用于业务逻辑,等等) 很久以前,这个解决方案就不能正常工作。当我们启动VisualStudio(2008)时,它显示了数百个错误。绝大多数是: “未定义类型“XXXX” 在做了一些“清理”+几个“构建”之后,我们就能够得到二进制文件了 任何人都知道问题是什么以及如何解决它???您对依赖项有问题,可能是顺序不正确或循环引用不正

我们有一个使用3.5框架开发的VB.NET Windows窗体解决方案

该解决方案有30多个相互引用的项目(DLL)。我们甚至将一些项目划分为N个层(一个用于数据访问,另一个用于业务逻辑,等等)

很久以前,这个解决方案就不能正常工作。当我们启动VisualStudio(2008)时,它显示了数百个错误。绝大多数是:

“未定义类型“XXXX”

在做了一些“清理”+几个“构建”之后,我们就能够得到二进制文件了


任何人都知道问题是什么以及如何解决它???

您对依赖项有问题,可能是顺序不正确或循环引用不正确。例如,这可能是您遇到的情况之一:

  • 项目A依赖于项目B
  • 项目B依赖于项目C
  • 项目C不依赖任何东西
您按照以下顺序构建所有项目A、B、C。第一次构建A、B失败,但C工作。第二次构建A失败,但B、C工作。第三次尝试A、B、C工作

理论上,VisualStudio应该制定正确的顺序……但是如果您有未使用的依赖项或循环引用,则会失败

您必须检查并清除依赖项。您可以使用 nDepend()或类似工具(Resharper、VS2010 Ultimate中的架构浏览器等)创建依赖关系映射,然后使用它清除依赖关系。您可以 在这里可以找到很多好的工具


一旦您检查并清理了依赖项,它将在第一次尝试时构建。

您所需要的只是更正项目构建顺序

首先确定哪些项目依赖于其他项目。不依赖于任何项目的项目应排在列表的顶部,依赖于其他项目的项目应按顺序排在下面

然后右键单击解决方案并从弹出菜单中选择
项目构建顺序…

将出现以下对话框。按正确的顺序设置项目生成顺序。使用
依赖项
选项卡正确指定依赖项。

谢谢你,cad,我已经按照你的建议使用了NDepend,我们能够找到错误的依赖项。谢谢你,Pradeep Kumar,你的答案和cad的一样好,我标记了他的,因为我使用了他的方法来解决它。