构建第一次尝试失败,然后通过

问题描述 投票:0回答:3

我有一个包含许多项目的解决方案,其中 2 个是

Webservice
ConsoleApplication
Webservice
是解决方案中的启动项目。我的解决方案构建顺序如下

  1. 项目A
  2. 项目B
  3. 控制台应用程序
  4. 网络服务

两个项目中都引用了ProjectA和ProjectB。现在,当我清理解决方案并尝试构建解决方案时,它第一次失败了。该错误来自 ConsoleApplication 项目中的类构造函数,我在其中实例化 ProjectA 的 XYZ 类。错误是

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 在调试文件夹中可见并且构建成功。

关于如何解决这个问题有什么建议吗?

c# .net visual-studio build
3个回答
3
投票

通常这是构建顺序问题...在您的解决方案中,右键单击并转到构建顺序。

然后设置正确的项目构建顺序。

Build Order

干杯


0
投票

听起来您还没有设置项目依赖项。您必须正确设置构建依赖项,即

  1. Webservice 依赖于 ProjectA 和 ProjectB
  2. 控制台应用程序依赖于ProjectA、ProjectB和Webservice

让控制台依赖于Web服务非常重要,因为只有这样才能保证Web服务先于控制台应用程序构建。

对于 Visual Studio 2012,右键单击您的解决方案 > 属性 > 项目依赖项 >


0
投票

您缺少项目参考。要添加项目引用,请将项目 A 设为创建 DLL 的项目,将项目 B 设为引用 DLL 的项目。因此,在解决方案资源管理器中,双击项目 B,然后右键单击“引用”,选择“添加引用”。添加对项目A的引用。

© www.soinside.com 2019 - 2024. All rights reserved.