- 次の図に示すように、[アプリケーション プロパティ]ダイアログ ボックスの[コンパイル]タブで、[COM 相互運用機能の登録]チェック ボックスをオフにします。
- プロジェクト ファイルと同じフォルダに " MyOEMApp.X.manifest" という名前のファイルを作成します。MyOEMApp を自分のアドイン名に置き換えます。マニフェスト ファイルに次の記述を追加します。実際のアドインに合わせて斜体のテキストを編集します。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity name="MyOEMApp" version="1.0.0.0" />
<clrClass clsid="{2bf59d73-5170-4524-b0e1-391760aaffa5}"
progid="MyOEMApp.StandardAddInServer"
threadingModel="Both"
name="MyOEMApp.MyOEMApp.StandardAddInServer"
runtimeVersion="" />
<file name="MyOEMApp.dll" hashalg="SHA1" />
clrClass 要素の "name" 属性は、3 つのパーツで構成され、ピリオドで区切られています。1 番目は、次の図で強調表示されているルートのネームスペースの名前です。
2 番目のパーツは、COM クラスが定義されるネームスペースです。この例では、次の図でハイライト表示されている MyOEMApp です。最後の部分は ApplicationAddInServer インタフェースを実装するクラスの名前です。この例では、次の図でハイライト表示されている StandardAddInServer です。
- マニフェストを .dll に組み込むため作成後処理を追加します。作成後処理は、アドインの .dll にマニフェストを埋め込む Microsoft ユーティリティである mt.exe を呼び出します。[アプリケーション プロパティ]ダイアログ ボックスの[コンパイル]タブで、[ビルド イベント...]をクリックします。[ビルド イベント]ダイアログ ボックスで、[ビルド後の編集...]をクリックします。[ビルド後に実行するコマンド ライン]ダイアログ ボックスで、次の行を入力し、OEMTestAddin をアドインの名前と置き換えます。
call "%VS90COMNTOOLS%vsvars32"
mt.exe -manifest $(Projector)\OEMTestAddin.X.manifest -outputresource:"$(TargetPath)";#2
- アドインのクラスから Register メソッドと Unregister メソッドを削除することで、レジストリへのアドイン登録に関連付けられているすべてのコードを削除します。AddInGuid プロパティは登録関数と同じ領域にあります。アド インの他の領域でこのプロパティを使用する場合、これを削除しないでください。
- プロジェクトをコンパイルします。コンパイルは .dll にマニフェストを埋め込みます。コンパイル時にエラーが発生した場合は、入力したコマンド文字列が手順 3 の文字列と一致することを確認します。
マニフェストが完全に埋め込まれていることを確認するには、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 2014¥Addins¥
- Windows7 C:¥ProgramData¥Autodesk¥Inventor 2014¥Addins¥
-
ユーザごとにオーバーライドする場合
ユーザ単位のオーバーライドを保存する場合は、マニフェスト ファイルは次の場所に自動的に生成されます。これらのマニフェスト ファイルの設定によって、'すべてのユーザ' フォルダにあるマニフェスト ファイルの設定値がオーバーライドされます。オーバーライド マニフェスト ファイルの名前は、"マスタ" ファイルの名前と同じになります。
- Windows XP C:¥Documents and Settings¥<ユーザ>¥Application Data¥Autodesk¥Inventor 2014¥Addins¥
- Windows7 C:¥Users¥<ユーザ>¥AppData¥Roaming¥Autodesk¥Inventor 2014¥Addins¥