【问题标题】:c# build error: error X2230 the type x is in assembly y that needs to be referencedc# build error: error X2230 the type x is in assembly y that need to be referenced
【发布时间】:2012-02-03 10:22:25
【问题描述】:

得到以下构建错误:

错误 X2230:“ASA.Log.ServiceLogger.IASALog”类型在程序集中 需要引用的'ASA.Log.ServiceLogger'

这是场景:

1) 只有在 Visual Studio 中构建/重建解决方案时才会构建失败(我已经多次运行 clean)

2) .DLL 似乎不在 GAC 中

3) 这是一个干净的“构建”机器,我们正在努力设置自动构建。它在开发人员的机器上编译得很好。

4) 当我点击错误时,它不会带我去任何地方。它没有指定代码行甚至相关项目。我在同一个解决方案中有一堆 C# 和 BizTalk 项目。通过扫描磁盘上的代码/文本,我想我知道它是哪个项目。但是每个 C# 项目在自己构建时都会成功构建。

5) 被引用的 DLL 来自另一个内部组(即我没有代码并且无法构建它)。我将引用的 DLL 的新版本从另一台机器的 GAC 复制到我引用它的库中。一种理论是我有一个过时的 DLL,即开发机器上的 GAC 是最新的,但引用的 DLL 不是。

所以我被卡住了,不知道如何完成构建。

同时,我会尝试 FusLogVw,但我不想在这台构建机器上安装额外的垃圾。

【问题讨论】:

    标签: c# build build-process build-automation


    【解决方案1】:

    看起来您引用的程序集之一又引用了不可用的 ASA.Log.ServiceLogger.dll。您应该能够从发布依赖它的程序集的组中获取此依赖项。

    【讨论】:

      【解决方案2】:

      找到它,我确信错误出在其中一个 C# 项目中,但沮丧的是,我开始构建大约 12 个 BizTalk 项目中的每一个。最后,我找到了另一个有“GAC”引用的项目,并将其更改为磁盘/库引用,生活还不错。

      【讨论】:

        【解决方案3】:

        您的构建机器不包含 GAC 中缺少的参考(您问题中的第 2 点)。它在开发人员的机器上编译得很好(第 3 点)。我的建议是在 GAC 中添加缺少的参考。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-10-06
          • 2020-09-06
          • 2022-09-27
          • 2022-12-01
          • 2018-11-09
          • 2018-11-16
          • 2021-10-15
          • 2021-03-13
          相关资源
          最近更新 更多