.g.cs文件错误

本文关键字:错误 文件 cs | 更新日期: 2023-09-27 18:03:56

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;

昨天我已经从我的解决方案中删除了那个项目(breadcrumlib),主项目工作得很好。
今天它不起作用了。

我该怎么办?
是什么被遗忘的信息让Visual Studio或其他程序构建。gcs文件时把这个引用放在那里?

.g.cs文件错误

试着清理一下。如果这不起作用,请删除解决方案中的bin obj目录,然后进行完整的重新构建。确保没有任何XAML文件引用该组件(生成.g.cs文件的就是这个组件)。

我的项目中的.g.cs文件通常是由XAML生成的。

检查在任何XAML文件的xmlns引用中没有引用breadcrumlib。

这种情况也发生在我身上,因为我将一些Xaml内容移动到另一个文件夹中的子userControl中,Resharper为我移动了Xmlns引用。

但是,ReSharper没有使用之前使用的Xmlns引用(具体来说是:Xmlns:ms="clr-namespace:Mindscape.WpfElements. charts;assembly=Mindscape.WpfElements"),而是用以下内容替换了它:

xmlns:ms="http://namespaces.mindscape.co.nz/wpf" 

我用旧的正确的引用替换了错误的引用。这就解决了我的问题。

我也有这个问题。对我来说,问题是重命名没有通过剃刀文件的所有方式,所以g.cs文件一直以旧名称生成。

我通过检查相关的.razor文件中的错误并手动修复它们来解决它。

如果像我这样的人遇到这个问题,我的问题的原因是我的"GlobalStyles。"xaml"资源字典引用了被删除的命名空间,由于某种原因,它在MainWindow.g.cs文件中显示为包含。删除资源字典文件中的引用修复了它。

刚刚收到这个错误信息。

这里的答案都没有解决我的问题,但是我查看了我的警告信息,发现其中一个项目是用。net 4.7构建的,另一个是用。net 4.5构建的。我把所有项目放在同一个版本上,构建,现在我很高兴!

这就发生在我身上了。我的问题是,我有空间在我的x:Name。一旦我移除了空间并清洗了溶液,它就工作得很好。

<button Text="Check In" x:Name="Check In">
正确

<button Text="Check In" x:Name="CheckIn">

有相同的错误。根本原因是我重命名了几个视图模型,结果发现我发现了& &;替换未完成。

我通过在错误消息中查找违规视图模型名称解决了这个问题,在我的视图中进行了全局搜索和替换(而不是.g.cs文件)。这个问题就消失了。

我也遇到过同样的问题,

我在nuget中创建了一个自定义控件,生成的xml类不喜欢所涉及的名称空间。它把控件变成了xxx.yyy.zzz.Name的名称空间,我的项目在其中有一个名称空间,eee.fff.yyy...(注意yyy),它只是完全混淆了,唯一的办法是重构父应用程序中的名称空间。

遇到g.cs问题,删除/bin和/obj没有帮助。如果你重命名了命名空间或类,手动打开每个。cshtml文件(由于某种原因,双击错误将不会在VS 2022中这样做),并确保。cshtml没有语法错误。在我的例子中,我将@model指向前面的名称空间。在使用替换工具和我的各种查找/替换查找时错过了这些。

我有一个类似的问题,但我的问题是我已经从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:]属性,所以当我重建时,它正在寻找它们。删除冒犯的行,等等。

我想我应该和其他做过类似事情的人分享,可能会让他们挠头。

我的情况有点不同。我有一个WPF项目,我创建了一个自定义面板,如下所示:

using System;
using System.Windows;
using System.Windows.Controls;
namespace MegaMenu
{
    public class MegaMenu : Panel
    {

我的。xaml文件看起来像这样:

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

cs文件
using System;
using System.Windows;
using System.Windows.Controls;
namespace MegaMenu
{
    public class MegaMenuPanel : Panel
    {
xaml文件
<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:MegaMenuPanel>
        <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:MegaMenuPanel>
</Window>

在我的例子中,我试图使用x: name命名一个xaml控件,但忘记了,并将其保留为x: name =". 编译器一直抛出错误。给出正确的名称或删除那个空字符串为我解决了错误。

我没有使用WPF,但得到了这个错误,因为我忘记在我的剃刀视图的@inject部分更改命名空间。

我把.NET 6项目降级到.NET 4.8

默认情况下,.NET 6添加到我的.csproj <ImplicitUsings>enable</ImplicitUsings>,如果我删除强制我手动添加using语句,这解决了我的问题,一个幻影using认为它是需要的,当它不是,找不到