【问题标题】:WPF namespace not working with intellisenseWPF 命名空间不适用于智能感知
【发布时间】:2013-12-03 19:59:50
【问题描述】:

我正在尝试使用用户控件库设置 WPF 应用程序。该库位于 .NET 4.5 中,我的项目也是如此。我在 MainWindow.xaml 中设置了 "clr-namespace:Fluent;assembly=Fluent" 的命名空间 (xmlns:blah)。我正在使用VS2012。大约一年前我做过这项工作,但是当我的电脑崩溃时我丢失了我的代码。每当我使用此控件库的元素时,我都会在 xaml 窗口中收到智能感知错误。当它工作时,我什至可以在设计器中对其进行编辑。它仍然可以构建和运行,但我在 xaml 中几乎所有内容都严重依赖智能感知,因此在没有任何智能感知的情况下手动编码所有内容真的很慢而且很困难。 Intellisense 在 C# 文件中工作,只是在 xaml 中找不到它。它给我的具体错误是

命名空间中不存在名称“RibbonWindow”
"clr-命名空间:Fluent;assembly=Fluent"。

对于库中使用的所有其他控件,我都会遇到相同的错误。我使用的库是Fluent Ribbon Control Suite. 我知道有一个非常相似的问题问here,但是那里的解决方案没有任何效果。

【问题讨论】:

  • 忽略它。重建项目,错误会在一段时间后消失。不幸的是,wpf 设计器并不能很好地工作:(。
  • 我在 VS2010 和偶尔在 VS2012 中看到过这样的事情。这已经发生了几天。我一直在努力,偶尔运行清理和重建,但事实并非如此。
  • 正如我之前所说。我知道所有这些错误,而且大多数时候设计师抛出的所有错误都发生在你的代码中没有任何错误:(。我猜,你不能对它做任何事情。

标签: .net wpf xaml intellisense


【解决方案1】:

下载 Fluent Ribbon Control Suite 后,您需要先解压缩 .zip,然后再将其解压缩。为此,请右键单击 zip 文件并选择“属性”,然后在“常规”选项卡上单击“取消阻止”。

现在,当您添加对提取的 .dll 的引用时,它将能够解析命名空间并且智能感知应该可以工作。

【讨论】:

  • 我已经在项目中有参考。解压后我不必取消阻止它来访问 DLL。如果项目中没有引用,它甚至不会编译。
  • 您不必取消阻止它即可访问 DLL。但是,如果您在解压缩存档之前未取消阻止存档,则智能感知将无法处理从提取的存档中引用的任何 DLL。
  • 哇,效果很好!你能解释一下为什么解封 ZIP 文件 以某种方式修复了包含的 DLL 文件,因为我不知道怎么做。
  • 老实说,我真的不知道它是如何工作的。我所知道的是,Windows 安全将阻止来自远程位置的 dll 以防止 dll 劫持。这有失去智能感知的副作用,大概是因为它试图阻止您访问 dll 中的函数。
  • 所以 Windows 安全性实质上是在 ZIP 中阻止 DLL 的某些部分,当它被提取时,DLL 的这些部分(智能感知)被删除。
猜你喜欢
  • 2021-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-02
  • 2014-07-02
  • 1970-01-01
相关资源
最近更新 更多