错误"类型在命名空间中不存在"在使用此类型的外部库之后

时间:2016-09-24 21:20:48

标签: c# wpf visual-studio xaml namespaces

互联网上似乎有数十个帖子有这样的错误。但我认为我的情况有所不同,我找到的所有解决方案都没有帮助我。 我有类型(我删除了所有不重要的东西,但它什么都没改变):

using ExternalLibrary;
namespace MyProject
{
    public class MyClass
    {
        public ExternalLibrary.ExternalType myVar;
    }
}

我试图在XAML中访问此类型以进一步将其用作DataType:

<Window x:Class="MyProject.MyWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:MyProject">
    <Window.Resources>
        <local:MyClass x:Key="myKey"/>
    </Window.Resources>
</Window>

并得到错误。如果从using ExternalLibrary删除myVarMyClass,则一切正常。在类中使用外部库 - 命名空间中不存在类。删除库的使用 - 并且类再次存在。我使用VisualStudio 2015,我曾尝试过VS 2013并且错误没有消失。我尝试在debug,release,x86,x64,其他框架,客户端配置文件,命名空间的不同组合以及许多其他方面进行重建。有这个问题的解决方案吗?感谢。

1 个答案:

答案 0 :(得分:1)

事实证明,问题ExternalLibrary是为AMD64构建的,而使用它的项目则针对任何CPU。在为32位处理器构建项目时,编译器无法找到类,因此出错。您可以安全切换到目标64位处理器,因为它无论如何都不能在其他机器上工作。要切换目标处理器,请转到Build - &gt;配置管理器 - &gt;平台 - &gt; 64

您可能希望根据活动的解决方案平台为每个项目选择不同的平台组合。例如,如果您的解决方案针对x86,则项目A为x86构建,而项目B针对任何CPU构建,但如果解决方案针对x64,则项目A和B都针对x64构建。有关更多信息,请参阅Understanding Build Configuration

如果您正在使用这些设置,最终可能会出现意外配置,因此查看每个项目的定位情况(您可以在Configuration Manager中执行此操作)可能会有意义