tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトル厳密名を付けての参照設定について
記事No6842
投稿日: 2008/01/17(Thu) 15:15
投稿者
いつもお世話になります。Kと申します。

環境:WinXP+SP2 VB.net2003 Excel2003+SP3 Access2003+SP3

作成したアプリケーションを共有サーバに置き、利用しているのですが
アプリケーションのバグ修正やバージョンアップの際の都度、
各PCでアセンブリの信頼の設定を行っています。
最近社員も増え、その作業が重荷になってきました。
そこで、アプリケーションに公開キーを作成し厳密名を設定して
今後、アセンブリの信頼の設定をせずに済むようにしたいと考えています。

そこで質問なのですが、公開キーを作成し各アプリケーションのAssemblyInfo.vbを
修正してビルドしたところ、ソリューションエクスプロラーの参照設定の中で
ExcelとMIcrosoft.Office.Coreを参照してるプロジェクトで
「エクセルのInterop.Excelは厳密名を持ってない!」というようなエラーが出て
しまいました。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=27151&forum=7
を参考にして色々とやってみましたがどうにもうまくいかず困っています。
やってみた事は

ソリューションエクスプローラーの参照設定でExcelを参照する時の情報を確認し
tlbimpで厳密名付の相互運用アセンブリを作成した。
まず通常の参照設定では
Microsoft Excel 11.0 Object Libraryを参照してました。
これは、
C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE
を見ているようだったのでこのEXCEL.EXEを
tlbimp C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE /keyfile:KeyFile.snk /out:PubExcel.dll
とMicrosoft Visual Studio .NET 2003に入っているVisual Studio .NET 2003 コマンド プロンプトで実行しました。
先に参照していた、ExcelとMicrosoft.Office.Coreを削除し、出来上がった
PubExcel.dllをソリューションエクスプローラーの参照設定から参照しました。
厳密名についてはクリアしたようなのですが、ビルドをかけると
>メイン コンパイルを実行しています...
>Form2.vb(561) : error BC30002: 型 'Excel.Application' が定義されていません。
>Form2.vb(562) : error BC30002: 型 'Excel.Workbooks' が定義されていません。
>Form2.vb(563) : error BC30002: 型 'Excel.Workbook' が定義されていません。
>Form2.vb(564) : error BC30002: 型 'Excel.Sheets' が定義されていません。
>Form2.vb(565) : error BC30002: 型 'Excel.Worksheet' が定義されていません。
>Form2.vb(566) : error BC30002: 型 'Excel.Range' が定義されていません。
>サテライト アセンブリをビルドしています...
>メイン プロジェクト出力が見つからないため、サテライト アセンブリをビルドでき
>ませんでした。
とエラーが出てしましました。
ちなみにMicrosoft Excel 11.0 Object Libraryを参照設定に設定した場合、
Interop.Excel.dllが作成されます。これをtlbimpで厳密名を付けようとすると
TlbImp error: The input file 'Interop.Excel.dll' is not a valid type library
というエラーがでてしまいます。

tlbimpで対象としてるEXCEL.EXE事が間違っているのか、それとも根本的に間違った事
をしているのか分からず困っている状況です。

もしこれについての対処方法や詳しく説明しているサイト等ご存知の方がいらっしゃい
ましたらご教授お願いいたします。

説明不足等ありましたら、ご指摘ください。

[ツリー表示へ]
タイトルRe: 厳密名を付けての参照設定について
記事No6847
投稿日: 2008/01/17(Thu) 21:20
投稿者魔界の仮面弁士
> C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE
Visual Studio によって自動生成される IA を使うのではなく、
Office 2003 の PIA を用いるようにしてください。

http://www.microsoft.com/japan/msdn/office/office2003/OfficePrimaryInteropAssembliesFAQ.aspx

[ツリー表示へ]
タイトルRe^2: 厳密名を付けての参照設定について
記事No6864
投稿日: 2008/01/19(Sat) 11:06
投稿者
返答が遅くなり、申し訳ありません。
魔界の仮面弁士様、いつもありがとうございます。

> Visual Studio によって自動生成される IA を使うのではなく、
> Office 2003 の PIA を用いるようにしてください。
>
> http://www.microsoft.com/japan/msdn/office/office2003/OfficePrimaryInteropAssembliesFAQ.aspx
ご提示いただいた、サイトを確認しやってみます。
結果が出ましたら、こちらに書かせていただきます。

[ツリー表示へ]