.g.cs文件中的错误?

时间:2011-07-27 14:39:17

标签: c# build

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文件将该引用放在那里?

9 个答案:

答案 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> 文件中的错误等等。因此,当名称空间名称与类名称相同时,似乎会发生此问题。我必须将它们更改为以下值,从而导致错误消失了。

.cs文件
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中构建的。我把所有项目都放在了相同的版本上,现在我很高兴!