方法 : サテライト DLL のリソースにアクセスする

更新 : 2007 年 11 月

サテライト DLL を作成し、そこにリソース (アイコン、ビットマップ、リソース文字列など) を追加すると、アドインやその他のオートメーション プロジェクトからこれらのリソースにアクセスできるようになります。この具体的な方法を次の手順に示します。

ms165653.alert_note(ja-jp,VS.90).gifメモ :

使用している設定またはエディションによっては、表示されるダイアログ ボックスやメニュー コマンドがヘルプに記載されている内容と異なる場合があります。ここに記載されている手順は、全般的な開発設定が適用されているものとして記述されています。設定を変更するには、[ツール] メニューの [設定のインポートとエクスポート] をクリックします。詳細については、「Visual Studio の設定」を参照してください。

サテライト DLL リソースへのアクセス

  1. Visual Studio を起動し、既存のアドイン プロジェクトを読み込むか、アドイン プロジェクトを新規作成します。

  2. 次のコード例を追加し、コンパイルして実行します。

使用例

Visual Studio でサテライト DLL を検索する場合、一般的に、次のアルゴリズムが使用されます。このコードを使用することにより、サテライト DLL を適切な場所にビルドし、必要なリソース名を割り当てることができます。

static void Main(string[] args)
{
    string path = @"<some path here>";
    System.Reflection.Assembly asm =    
    System.Reflection.Assembly.LoadFrom(path);
    // For enhanced security, use the LoadFrom overload 
    // System.Reflection.Assembly.LoadFrom(path, securityInfo);
    // where securityInfo is an instance of an Evidence object.
    System.Reflection.Assembly assemblyForResources = 
    asm.GetSatelliteAssembly(System.Threading.
    Thread.CurrentThread.CurrentCulture);
    System.IO.Stream stream =    
    assemblyForResources.GetManifestResourceStream
    (assemblyForResources.GetManifestResourceNames()[0]);
    ResourceReader resReader = new ResourceReader(stream);
    foreach (System.Collections.DictionaryEntry entry in resReader)
    {
        System.Windows.Forms.MessageBox.Show(entry.Key.ToString());
    }
}

コードのコンパイル方法

この例を使用するには、Visual C# のコンソール アプリケーションを作成して、Main() 関数にこのコードを追加し、path 変数に (サテライト DLL へのパスではなく) アドイン アセンブリへのパスを設定します。実行すると、サテライト DLL 内で利用可能なすべてのリソースが表示されます。

参照

処理手順

チュートリアル : マネージ サテライト DLL の作成