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

プロジェクト参照を見て、自己への参照を削除します。

于 2012-04-19T21:26:05.770 に答える
4

これは非常に厄介な問題の 1 つであり、状況を変える原因となった別の問題が発生するまでは考えもしませんでした。

デフォルトの .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 フォルダー内のクラス/リソース ファイルの 1 つを ProjectName.Icon に自動変更すると、クラス/構造体名と競合する可能性があります。

面白いのは、アプリケーションがビルドされることです..

于 2012-04-20T05:48:50.393 に答える
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 に答える
1

同じ問題に遭遇しました。VS はフォーム オブジェクトをロードしません。私は他のすべてのアプローチを試しましたが、結果はありませんでした。

以前、すべてのプライベート グローバル変数をパブリック プロパティに変更しました。

public Textbox exampleTextBox { get; set; }

いくつかの理由でこれを行いましたが、デザイナーのビューは気に入りません。解析の問題がいくつかあるに違いないと思います。

オブジェクトは、プロパティではなくグローバル変数でなければなりません。

public Textbox exampleTextBox;

これにより、デザイナーのビューが修正されました。

于 2012-05-22T17:08:41.840 に答える
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

私は他のすべての答えを試しましたが、どれもうまくいきませんでした。

最終的に私にとってうまくいったように見えたのは、プロジェクトを右クリックして「プロジェクトのアンロード」を行い、次に「プロジェクトのリロード」を行うことでした。まだ機能しているかどうかを確認する前.cs [Design]に、ソリューション エクスプローラーでプロジェクトを右クリックし、[名前の変更] をクリックして、プロジェクトの名前を別の名前に変更しました。

なぜこれがうまくいったのか私に聞かないでください...

于 2015-06-03T14:14:16.467 に答える
0

私が使用した「解決策」はそのように呼ばれることさえないかもしれませんが、私はあなたと同じ問題を抱えていました。いくつかのセットアップ プロジェクトを追加して削除し、いくつかのイメージのビルド アクションをいじっていることは知っていました。

私が使用したソリューション?現在のプロジェクトを削除し、問題のない最新のバックアップに戻します。もちろん、これはプロジェクト ソリューションのバックアップを作成している場合にのみ機能します。

プロジェクト ソリューションのバックアップを作成する場合は、この方法を最後の手段としてのみ試してください。

于 2014-07-07T05:24:40.913 に答える
0

Resources.resx ファイルを開き、新しいイメージを追加してから、ソリューション/プロジェクトをビルドします。エラーが消えます。

于 2021-05-17T03:51:00.953 に答える