【发布时间】:2014-04-27 20:49:45
【问题描述】:
我有一个包含许多项目的解决方案,其中两个是 Webservice 和 ConsoleApplication。 Webservice 是解决方案中的启动项目。我的解决方案构建顺序如下
- 项目A
- 项目B
- 控制台应用程序
- 网络服务
两个项目都引用了 ProjectA 和 ProjectB。现在,当我清理我的解决方案并尝试构建解决方案时,它第一次失败了。错误来自我正在实例化 ProjectA 的 XYZ 类的 ConsoleApplication 项目中的类的构造函数。错误是
The type 'XYZ' is defined in an assembly that is not referenced. You must add a reference to assembly 'ProjectA, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. ProjectPath\Program.cs
但是,当我再次构建解决方案时,它会成功构建。谁能帮我理解这种行为。无论如何,这对我的项目都不是致命的,但我不希望 Visual Studio 决定何时做什么。我想知道这种行为的原因。
另外,当我第一次构建解决方案时,我在 ConsoleApplication 的调试文件夹中看不到 ProjectA 或 ProjectB 的 .dll。然而,在第二次尝试时,这些 dll 在调试文件夹中可见并且构建成功。
关于如何解决此问题的任何建议?
【问题讨论】:
-
项目如何相互引用?如果您引用项目的输出
.dll而不是项目本身,这听起来像是您可能会看到的行为。 -
您是在使用项目引用还是通过文件名引用 ProjectA 和 ProjectB?
-
听起来构建顺序有点不正常,它试图与 ConsoleApplication 同时构建 ProjectA。由于 ConsoleApplication 在 ProjectA 完成之前构建,因此它失败了。第二次运行时,ProjectA 已经构建完成,一切顺利。
-
@David:我引用的是项目而不是 dll。
-
@JoachimIsaksson:有办法解决吗?
标签: c# .net visual-studio build