12

出于某种原因,在我当前的项目中,我通过项目属性创建了我的资源文件,添加了大量现有图像。然后将这些图像添加到菜单项,保存。此时一切看起来都很好,并且图像都正确映射。

但是,一旦我关闭了该表单的设计器,然后打开它,我会收到错误对话框:

The type 'My.Project.Properties.Resources' has no property named 'icon_plus'.

烦人的事情是,如果您按照代码进行操作,则没有错误,则可以正常编译:

this.newToolStripMenuItem.Image = global::My.Project.Properties.Resources.icon_plus;

我尝试删除所有资源并从项目中删除资源文件,完全关闭 IDE 然后重新加载它。我已经移动了文件的位置,但我只是没有想法,它真的开始使用大约 10 个表单和控件,每个表单和控件都会给我这个错误,它们会从 UI 中删除图标。

4

10 回答 10

17

查看项目引用,并删除对 self 的引用。

于 2012-04-19T21:26:05.770 回答
4

这是那些非常烦人的问题之一,在我遇到另一个导致我改变事情的问题之前,我永远不会想到这个问题。

似乎应用程序使用了 .net 4 的客户端配置文件,而不仅仅是默认的 .net 4 运行时。一旦我改变了这个问题,这个问题就停止了,我最近出现的另一个丢失的命名空间问题就消失了。

于 2012-04-30T10:09:56.907 回答
3

这对我有用。(尝试了所有发布的内容,但没有任何乐趣。)

当我第一次启动项目namespace时,项目属性中指定的默认值是MyProject. (所以我的大部分课看起来像namespace MyProject{ public class foo{} }

后来我将我的类的命名空间从 更改MyProjectCompanyName.MyProject 这也是问题发生的时候。

就我而言,我不得不返回Project Properties并将实际条目更改Default namespaceCompanyName.MyProject

砰,没问题了。

于 2013-04-04T05:51:32.853 回答
2

它最有可能与命名空间冲突有关。

仔细检查项目中的所有命名空间,VS 喜欢做“ProjectName.FolderName”。如果它自动将 Icon 文件夹中的一个类/资源文件更改为 ProjectName.Icon,它可能与类/结构名称冲突。

有趣的是应用程序构建..

于 2012-04-20T05:48:50.393 回答
1

我遇到了同样的问题。VS 不会加载任何表单对象。我尝试了所有其他方法,但没有结果。

以前我将所有 Private 全局变量更改为 Public 属性。

public Textbox exampleTextBox { get; set; }

我这样做有多种原因,但设计者视图不喜欢它。我相信它一定有一些解析问题。

该对象必须是全局变量而不是属性。

public Textbox exampleTextBox;

这固定了我的设计师观点。

于 2012-05-22T17:08:41.840 回答
1

我找到了另一种方法

在私有方法中移动初始化表单代码,如下所示

private void FormInitialize(){/*Your code here*/}

在表单构造函数中像这样使用它

public Form1()
    {
        InitializeComponent();
        FormInitialize();
    }

从 Button、menuItem 或其他像这样的调用方法

    private void ChangeCultureToFrench_Click(object sender, EventArgs e)
    {
        Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr");
        this.Controls.Clear();
        this.InitializeComponent();
        FormInitialize();
    }

我希望这会有所帮助;-)

于 2013-09-27T10:27:52.087 回答
0

我以前遇到过这个错误。当我添加一个资源,然后把它拿走或修改它时,它就出现了。我发现我可以解决这个问题的唯一方法是打开 .csproj 文件并查找它给出错误的 .ico 并将其删除。你在寻找

<ItemGroup>
    <None Include="Resources\SomeResource.ico" />
</ItemGroup>

在此之后,保存文件。打开解决方案并重新添加。希望这对你有用。但是请注意,这不是理想的解决方案。

编辑:

好的。所以这并没有解决你的问题。进入解决方案文件夹并导航到“属性”文件夹。在里面你会看到一个叫做resources的文件。打开它并尝试找到有问题的文件名

<data name="YourNamedIco" type="System.Resources.ResXFileRef, System.Windows.Forms">
    <value>..\Resources\SomeResource.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, 
         Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> 
</data>

如果你找到它,删除它,保存。

我希望这有帮助。

于 2012-04-20T07:51:05.850 回答
0

我和你有同样的问题,尽管我使用的“解决方案”甚至可能不会被这样称呼。我确实知道我向其中添加了一些设置项目,然后将其删除,同时摆弄了一些图像的构建操作。

我使用的解决方案?删除当前项目,并恢复到最近的备份,没有问题。当然,这仅在您对项目解决方案进行备份时才有效。

如果您确实对项目解决方案进行了备份,请仅将此方法作为最后的手段。

于 2014-07-07T05:24:40.913 回答
0

我尝试了所有其他答案,但都没有奏效。

最终似乎对我有用的是通过右键单击您的项目然后“重新加载项目”来执行“卸载项目”。在检查我是否.cs [Design]工作之前,我还通过右键单击解决方案资源管理器中的项目然后单击“重命名”将我的项目重命名为其他内容。

不要问我为什么会这样...

于 2015-06-03T14:14:16.467 回答
0

打开 Resources.resx 文件并添加新图像,然后构建您的解决方案/项目。错误会消失。

于 2021-05-17T03:51:00.953 回答