我目前正在尝试将Visual Studio 2008中的WiX 3.5自定义操作项目转换为WiX 3.7和Visual Studio 2012,并且我遇到以下异常:
无法找到类型或命名空间名称“MyNamespace”(是吗? 缺少using指令或程序集引用?)
明确引用了dll,Visual Studio 2012查看命名空间没有问题。命名空间下的所有内容甚至会在Intellisense中弹出,但是当我构建它时,我得到了这个异常。
任何人都知道这里发生了什么?
其他信息:
我引用的命名空间是.Net 2.0库,自定义操作项目是.Net 2.0项目。
修改
经过进一步调查后,我收到了这个警告,我猜这是问题的根源:
主要参考“MyNamespace,Version = 8.5.1.20,Culture = neutral, PublicKeyToken = f593502af6ee46ae,processorArchitecture = MSIL“不能 解决因为它与.NET间接依赖 框架程序集“mscorlib,Version = 4.0.0.0,Culture = neutral, PublicKeyToken = b77a5c561934e089“其中包含更高版本”4.0.0.0“ 比当前目标框架中的版本“2.0.0.0”。
为什么在这是2.0项目时尝试使用mscorelib 4.0?
答案 0 :(得分:9)
事实证明,在编译为目标.Net 2.0框架时,正在引用的dll正在使用4.0编译器进行编译。使用3.5编译器切换项目以编译解决了问题。
答案 1 :(得分:0)
这可能完全不相关,但昨天我遇到了类似的问题。我不小心将一个类文件(.cs)从一个解决方案复制到另一个解决方案中。显然,我没有添加对其他解决方案的引用。
答案 2 :(得分:0)
在我们的例子中,虽然引用的dll以.Net 4.0为目标,但它有自己对.Net 4.5.2 dll的引用。引用的4.0框架目标使我们相信4.5或4.5.1足以处理事情,但它们不是 - 引用项目必须是4.5.2来处理dll 及其所有引用< / em>的
这显然是dll制造商的一个错误。