【问题标题】:Referenced Project gets lost at Compile Time in VS 2008引用的项目在 VS 2008 的编译时丢失
【发布时间】:2012-05-16 09:07:16
【问题描述】:

我知道相同的标语已用于回答相同类型的问题,但是,那里的答案没有帮助。 我的解决方案中有几个项目。一个项目说 Prj.Infrastructure 有一些接口 IA, IB, IC, ID 和 IE,这些接口由项目 Prj.Bridge 中的一些 C++/CLI 类实现,也用于 Prj.UI 中的一些 winforms。

当我单独构建每个项目时,它构建得很好,但是当我构建整个解决方案时,由于某种原因它失去了接口 IA、IB 和 IC,并且 Prj.UI 找不到它给出类似的错误

错误 6 找不到类型或命名空间名称“IA”(您是否缺少 using 指令或程序集引用?) D​​:\svnroot\branches\blah1\blah2\blah3\blah4\blah5\blah6\INVS .cs

INVS 在哪里实施 IA。

我尝试了以下方法: 我已经清洁和建造了很多次。 我检查了我的解决方案中的所有项目,并且未选中客户端配置文件复选框。 删除了 Resharper(因为 Resharper 识别引用的项目没有问题,我认为它可能值得一试) 删除并重新添加了引用和使用语句。 还尝试在其他计算机上检查我的分支,但仍然失败。

请帮帮我,我已经卡了 2 天了。

编辑:它适用于 .Net 3.5

【问题讨论】:

  • 你已经排除了所有明显的可能性。我只能想到一个项目会覆盖另一个项目的输出。并确保您使用的是项目引用而不是程序集引用。
  • 汉斯,是的,我有。我试图检查一切。是的。我正在添加项目引用而不是程序集引用。它看起来真的像是一个项目覆盖了另一个项目。但我不知道如何确认或测试。
  • 好吧,让它进入错误状态,然后用 ildasm.exe 来查看 DLL。验证它是否包含接口。

标签: visual-studio-2008 reference multiple-projects


【解决方案1】:

解决方案->属性

通用属性->项目依赖

Prj.UI 依赖于 Prj.Infrastructure

【讨论】:

  • 因为我已经手动添加了引用并添加了 using 语句。依赖项已经存在。因此,Prj.Infrastructure 已在该列表中检查。
【解决方案2】:

对不起大家。原来我的同事在构建脚本中添加了一个注册表(在 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft.NETFramework\AssemblyFolders 下添加了键)指向另一个构建文件夹(来自另一个源代码控制结帐),所以每当我构建整个解决方案时,它正在从中获取数据,并且无法识别新添加的接口。对不起这个问题,事实证明,我们可能会为这个问题增加一种可能性。检查您的注册表,因为这是 Visual Studio 在构建整个解决方案时获取其构建信息的地方。 VS 使用此文件夹来解析引用(即,传送 API)。它是从这个文件夹而不是分支输出文件夹解析一个库,它是如何将程序集添加到“添加引用”部分的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 2011-04-03
    • 2015-03-10
    • 2011-08-09
    相关资源
    最近更新 更多