c# - 使用这种类型的外部库后出现错误 "Type does not exist in the namespace"

标签 c# wpf visual-studio xaml namespaces

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

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 ExternalLibrarymyVar来自 MyClass ,一切正常。在类中使用外部库 - 命名空间中不存在类。删除库的使用 - 和类再次存在。我使用 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 构建。如需更多信息,请参阅 Understanding Build Configuration .

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

关于c# - 使用这种类型的外部库后出现错误 "Type does not exist in the namespace",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39681071/

相关文章:

C# 字典与列表用法

c# - 从 GetHostEvidence() 获取空值

c# - xaml 中的条件元素取决于绑定(bind)内容

visual-studio-2010 - “Unable to find manifest signing certificate in the certificate store” - 即使添加新 key

c# - VisualStudio C# x64,为什么 AddReference 选项、.NET 选项卡指向 x86 DLL 而不是 x64?

c# - UnityException : GetActiveScene is not allowed to be called from a MonoBehaviour constructor

c# - 通过基于样式属性覆盖样式

c# - 如何使用触发器来同步列表框选择?

c++ - 使用字体资源编译

c# - 在文件夹中创建类时更改默认命名空间 (Visual Studio)