リソースファイルに問題があります。
2つのプロジェクトで解決策があります。最初のプロジェクトには、私が使用する画像を含むImageResource.resx
ファイルが含まれています。このプロジェクトのすべてのForm
は、デザイナーからこのファイルにアクセスできます。しかし、デザイナーのImageResource.resx
ファイルで2番目のプロジェクトからそれを使用することがわかります(2番目のプロジェクトへの参照が存在します)。
2番目のプロジェクトへのリンクとしてImageResource.resx
ファイルを追加しました。そしてデザイナーで見ました!しかし、2番目のプロジェクトでこのリソースの画像を使用すると、Visual Studioによって元のファイルが変更されました(名前空間などが設定されます)ソリューションが壊れます。また、Visual Studioは、ImageResource.resx
が2つのdllのfirst_project.dll
とsecond_project.dll
に存在することを教えてくれます。
誰かが私を助けてくれますかプロジェクト間で共有リソースを正しく使用する方法は?
次のステップは、このアイコンを他のプロジェクトに追加することです。重要な違いに注意してください。このアイコンをlink!として追加する必要があります。
リンクとして追加すると、リソースの重複を回避できます。同じソリューション内に新しいプロジェクトを作成し、名前を付けます。例: メイン。この新しいプロジェクトにいくつかのフォルダーを作成し、名前を付けますResources(この目的のための論理名)。次に、このフォルダーを右クリックし、既存のアイテムの追加…を選択して、共有プロジェクトフォルダーから画像ファイルを選択します。必ずリンクとして追加ここで使用してください!正しく実行されると、新しく追加されたファイルのアイコンはわずかに異なります(以下を参照)。
追加されたリソースのアイコンは次のようになります
これらは、プロジェクト間でアイコンを共有するために実行する必要がある5つの簡単な手順です。 「これの利点は何ですか?」と尋ねるかもしれません。利点は次のとおりです。
これは私にはうまくいきませんでした、そして私は別の(VS2015 +)アプローチを見つけました。 https://stackoverflow.com/a/45471284/4151626 を参照してください
つまり、共有プロジェクトは周辺プロジェクトに直接含まれます。したがって、IDEは共有プロジェクトの<Resource>
要素をサポートしていませんが。<Resource>
要素はテキストエディタを介して共有プロジェクトに追加できます。その後、ビルド中に周辺プロジェクトに組み込まれます。
(ハイパーリンクについてお詫びします。わかりやすくするために回答を再投稿しますが、stackoverflowエディターはこれを取り締まり、重複する回答を削除して???から救います。)
シンボリックリンクを使用してファイルを複数のフォルダーに共有できますか?
ウィンドウズ:
mklink linked_location\ImageResource.resx original_location\ImageResource.resx
C:\Users\preet>mklink
Creates a symbolic link.
MKLINK [[/D] | [/H] | [/J]] Link Target
/D Creates a directory symbolic link. Default is a file
symbolic link.
/H Creates a hard link instead of a symbolic link.
/J Creates a Directory Junction.
Link specifies the new symbolic link name.
Target specifies the path (relative or absolute) that the new link
refers to.
リソースファイルが実際にプロジェクト間で共有されている場合は、共有プロジェクトに配置する必要があります。
Solution 'Sample'
Project Sample.Data
Project Sample.Business
Project Sample.UI
Project Sample.Resource //shared resources are put in a shared project
publicでない場合、リソースは表示されません。デフォルトでは「Friend」に設定されています。 「アクセス修飾子」は、ビジュアルデザイナ(右上隅)で設定できます。