Error 1 The type or namespace name 'BreadcrumbLib' could not be found (are you missing a using directive or an assembly reference?) YOU_CAN'T_KNOW_THE_PATH_OR_NAME.g.cs 16 7 someWPFapp
麻烦的是:
using BreadcrumbLib;
昨天我从我的解决方案中删除了该项目(BreadcrumbLib),主项目工作正常 今天它不起作用。
我该怎么办?
什么样的被遗忘的信息使Visual Studio或任何程序构建.g.cs文件将该引用放在那里?
答案 0 :(得分:75)
尝试干净。如果这不起作用,请删除解决方案中的bin obj目录,然后执行完全重建。确保没有任何XAML文件引用该组件(这是生成.g.cs文件的原因)。
答案 1 :(得分:25)
我的项目中的.g.cs文件通常是从XAML生成的。
检查在任何XAML文件的xmlns引用中是否未引用BreadcrumbLib。
答案 2 :(得分:5)
这也发生在我身上,因为我将我的一些Xaml内容移动到另一个文件夹中的子userControl,并且Resharper为我移动了Xmlns引用。
但是,不是使用之前使用的Xmlns引用(具体来说:xmlns:ms =“clr-namespace:Mindscape.WpfElements.Charting; assembly = Mindscape.WpfElements”),ReSharper将其替换为以下内容:
xmlns:ms="http://namespaces.mindscape.co.nz/wpf"
我用旧的正确引用替换了错误的引用。这解决了我的问题。
答案 3 :(得分:2)
如果有人像我一样遇到这个问题,我的问题的原因是我的" GlobalStyles.xaml"资源字典引用了已删除的namesapce,并且由于某种原因它在MainWindow.g.cs文件中显示为include。删除资源字典文件中的引用已修复它。
答案 4 :(得分:0)
我遇到了类似的问题,但我的问题是我从WPF UI库中删除了几个文件夹/命名空间,忘记从库的AssemblyInfo.cs文件中删除相应的XmlnsDefinition条目。我让他们都指向“http://schemas.foo.com/ui”,以便更容易引用.xaml文件,如下所示:
[assembly: XmlnsPrefix("http://schemas.foo.com/ui", "ui")]
[assembly: XmlnsDefinition("http://schemas.foo.com/ui", "Foo.UI.Common.Behaviors")]
[assembly: XmlnsDefinition("http://schemas.foo.com/ui", "Foo.UI.Common.Converters")]
[assembly: XmlnsDefinition("http://schemas.foo.com/ui", "Foo.UI.Common.Commands")]
[assembly: XmlnsDefinition("http://schemas.foo.com/ui", "Foo.UI.Common.ViewModels")]
[assembly: XmlnsDefinition("http://schemas.foo.com/ui", "Foo.UI.Common.UserControls")]
[assembly: XmlnsDefinition("http://schemas.foo.com/ui", "Foo.UI.Common.Extensions")]
在AssemblyInfo.cs中,并且:
xmlns:ui="http://schemas.foo.com/foo/ui/"
在MainWindow.xaml中。
我删除了ViewModels和Commands,但忘记删除[assembly:]属性,因此在重建时它正在寻找它们。删除了违规行,等等。
想象一下,我会分享那些做过这样的事情并且可能会摸不着头脑的人。
答案 5 :(得分:0)
我的情况有些不同。我有一个WPF项目,并且创建了一个这样的自定义面板:
Error: no parsers registered for: "\"
我的.xaml文件如下:
using System;
using System.Windows;
using System.Windows.Controls;
namespace MegaMenu
{
public class MegaMenu : Panel
{
这给我带来<Window x:Class="MegaMenu.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:MegaMenu"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800"
>
<local:MegaMenu>
<TextBox Width="50" Height="20" Text="First"></TextBox>
<TextBox Width="50" Height="20" Text="Second"></TextBox>
<TextBox Width="50" Height="20" Text="Third"></TextBox>
<TextBox Width="50" Height="20" Text="Fourth"></TextBox>
<TextBox Width="50" Height="20" Text="Fifth"></TextBox>
<TextBox Width="50" Height="20" Text="Sixth"></TextBox>
<TextBox Width="50" Height="20" Text="Seventh"></TextBox>
</local:MegaMenu>
</Window>
文件中的错误等等。因此,当名称空间名称与类名称相同时,似乎会发生此问题。我必须将它们更改为以下值,从而导致错误消失了。
g.cs
XAML文件
using System;
using System.Windows;
using System.Windows.Controls;
namespace MegaMenu
{
public class MegaMenuPanel : Panel
{
答案 6 :(得分:0)
这只是发生在我身上。我的问题是x:Name
中有空格。一旦我移开空间并清洁了溶液,它就可以正常工作。
不正确
<button Text="Check In" x:Name="Check In">
正确
<button Text="Check In" x:Name="CheckIn">
答案 7 :(得分:0)
我刚刚遇到了同样的问题,
我有一个在nuget中创建的自定义控件,并且生成的xmal类只是不喜欢所涉及的名称空间。这就使控件的命名空间为xxx.yyy.zzz.Name
,而我的项目中的命名空间为eee.fff.yyy...
(请注意yyy
),它完全被弄糊涂了,唯一的办法就是重构命名空间在父应用中。
答案 8 :(得分:0)
刚收到此错误消息。
这里没有一个答案可以解决我的问题,但是我查看了警告消息,发现其中一个项目是在.NET 4.7中构建的,另一个项目是在.NET 4.7中构建的。我把所有项目都放在了相同的版本上,现在我很高兴!