繁体   English   中英

使用此类型的外部库后出现错误“该类型在命名空间中不存在”

[英]Error “Type does not exist in the namespace” after using of external library in this type

似乎互联网上有数十个帖子都出现了此类错误。 但我认为我的情况有所不同,我发现的所有解决方案都无济于事。 我有类型(我删除了所有不重要的内容,但没有任何改变):

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

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

<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 MyClass using ExternalLibrarymyVar删除,则所有方法均可用。 在类中使用外部库-并且类在命名空间中不存在。 删除库的使用-并且类再次存在。 我使用VisualStudio 2015,尝试了VS 2013,但错误没有消失。 我尝试在调试,发行版,x86,x64,其他框架,客户端配置文件,名称空间的不同组合以及许多其他东西中进行重建。 有解决这个问题的办法吗? 谢谢。

事实证明,该ExternalLibrary是为AMD64构建的,而使用它的项目则针对任何CPU。 为32位处理器构建项目时,编译器找不到该类,因此会出现错误。 您可以安全地切换到以64位处理器为目标,因为它在其他计算机上也无法正常工作。 要切换目标处理器,请转到Build-> Configuration Manager-> Platform-> x64

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

如果您正在使用这些设置,则最终可能会得到意想不到的配置,因此查看每个项目的目标目标可能是有意义的(可以在配置管理器中完成)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM