- [アプリケーション プロパティ]ダイアログ ボックスの[ビルド]タブ内の[出力]で、[COM 相互運用機能の登録]のチェック ボックスをオフにします。
- プロジェクト ファイルと同じフォルダにファイルを作成し、"CSharpOEMAddIn.X.manifest" と名前を付けます。CSharpOEMAddIn 部分はアドインの名前にします。マニフェスト ファイルに次の行を追加します。実際のアドインに合わせて斜体のテキストを編集します。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity name="InvAddIn" version="1.0.0.0" />
<clrClass clsid="{2bf59d73-5170-4524-b0e1-391760aaffa5}"
progid="CSharpOEMAddIn.StandardAddInServer"
threadingModel="Both"
name="CSharpOEMAddIn.StandardAddInServer"
runtimeVersion="" />
<file name="InvAddIn.dll" hashalg="SHA1" />
</assembly>
下図の強調表示部分のように、[アセンブリ名]で、assemblyIdentity 要素の属性がアセンブリの名前になります。
clrClass 要素の "name" 属性は、2 つのパーツで構成され、ピリオドで区切られています。1 番目は、COM クラスが定義されるネームスペースの名前です。この例では、CSharpOEMAddIn です。2 番目のパーツは、ApplicationAddInServer インタフェースを実装するクラスの名前で、"StandardAddInServer" です。両パーツを下図で強調表示して示します。
- このマニフェストを .dll に組み込むために、ポストビルド処理を追加します。ポストビルド処理では、アドインの dll にマニフェストを埋め込む Microsoft ユーティリティである mt.exe を呼び出します。[アプリケーション プロパティ]ダイアログ ボックスの[ビルド イベント]タブで、[ビルド後の編集...]をクリックします
- . ビルド後のイベントのコマンド ライン ダイアログ ボックスに、次の文字列を入力します。InvAddin を自分のアドイン名に置き換えます。
call "%VS90COMNTOOLS%vsvars32"
mt.exe -manifest $(ProjectDir)\InvAddin.X.manifest -outputresource:"$(TargetPath)";#2
- アドインのクラスから Register メソッドと Unregister メソッドを削除することで、レジストリへのアドイン登録に関連付けられているすべてのコードを削除します。AddInGuid 関数は、登録関数と同じ領域にあります。アドインの他の領域でこのプロパティを使用する場合は、このプロパティは削除しないでください。
- プロジェクトをコンパイルします。マニフェストが .dll 内に埋め込まれます。コンパイル時にエラーが発生した場合は、入力したコマンド文字列が手順 4 の文字列と同じであるか確認します。
マニフェストが完全に埋め込まれていることを確認するには、Visual Studio にアドイン .dll をドラッグします。下図に示すように、"RT_MANIFEST" フォルダが表示されます。"2" のアイコンをダブルクリックして、実際のマニフェスト データを表示します。
- すべてのレジストリ フリー アドインには .addin ファイルが必要です。レジストリ ベースのアドインでは、Inventor はアドインに関する情報を取得するのに、レジストリに依存します。.addin ファイルは、これと同じ情報のためのレジストリとして機能します。アドインのファイル名は、Autodesk.AddInName .Inventor.addin の形式です。下図は、例の基本アドインの .addin ファイルの例です。変化する部分は斜体で示しています。
<?xml version="1.0" encoding="utf-16"?>
<Addin Type="Standard">
<ClassId>{2bf59d73-5170-4524-b0e1-391760aaffa5}</ClassId>
<ClientId>{2bf59d73-5170-4524-b0e1-391760aaffa5}</ClientId>
<DisplayName>MyOEMApp</DisplayName>
<Description>Inventor OEM Sample App</Description>
<Assembly>MyOEMApp\MyOEMApp.dll</Assembly>
<Hidden>0</Hidden>
</Addin>
- OEM¥bin フォルダにアドイン .dll と同じ名前のフォルダを作成します(名前から .dll 部分は省きます。新しいフォルダの絶対パスの例: "C:¥Program Files¥Autodesk¥Inventor OEM 2014¥Bin¥MyOEMApp")。
新しいフォルダにアドイン .dll をコピーします。
- アドインの対象範囲とオペレーティング システムに応じて、次のフォルダのいずれかに、.addin ファイルをコピーします。
-
バージョンに依存しない場合
.addin ファイルを次の場所に配置すると、マニフェスト ファイルの "SupportedSoftwareVersionXXX" 設定の値に基づいて、アドインは複数のバージョンの Inventor にロードされます。
- Windows XP C:¥Documents and Settings¥All Users¥Application Data¥Autodesk¥Inventor Addins¥
- Windows7 C:¥ProgramData¥Autodesk¥Inventor Addins¥
-
バージョンに依存する場合
マニフェスト ファイルを次の場所に配置すると、特定のバージョンの Inventor にアドインをロードすることを示します。マニフェスト ファイルの "SupportedSoftwareVersionXXX" 設定のすべての値は無視されます。
- Windows XP C:¥Documents and Settings¥All Users¥Application Data¥Autodesk¥Inventor 2011¥Addins¥
- Windows7 C:¥ProgramData¥Autodesk¥Inventor 2011¥Addins¥
-
ユーザごとにオーバーライドする場合
ユーザごとにオーバーライドする場合は、マニフェスト ファイルは次の場所に自動的に生成されます。これらのマニフェスト ファイルの設定によって、'すべてのユーザ' フォルダにあるマニフェスト ファイルの設定値がオーバーライドされます。オーバーライド マニフェスト ファイルの名前は、"マスタ" ファイルの名前と同じになります。
- Windows XP C:¥Documents and Settings¥<ユーザ>¥Application Data¥Autodesk¥Inventor 2011¥Addins¥
- Windows7/Vista C:¥Users¥<ユーザ>¥AppData¥Roaming¥Autodesk¥Inventor 2011¥Addins¥