ClickOnceを使用して展開しているVisual Studio 2005で開発されたアプリケーションがあります。私のソリューションには、VBでコード化されたユーザーインターフェイスレイヤーと、C#でコード化されたクラスライブラリという2つのプロジェクトが含まれています。私のC#クラスライブラリには、OutlookとExcelの相互運用機能アセンブリ(Microsoft.Office.Interop.OutlookとMicrosoft.Office.Interop.Excel、いずれもバージョン11)を使用するコードがあります。ここに私の質問があります。Microsoft Office Interopアセンブリの参照
- これは絶対として記載されているところ、私が発見していないが、私の理解では、相互運用機能アセンブリを使用するアプリケーションをインストールするために、Officeアプリケーション(見通し/エクセル)の適切なバージョンを持っていなければならないということです。これは正しいです?
(1 =はい)すると
どのようにあなたのアプリケーションが唯一の選択数によって利用される機能の唯一のカップルのための相互運用機能アセンブリを使用している状況を扱うたい場合総ユーザーベース?なぜ、一部のユーザーだけがそれらの機能を使用する必要がある場合、アプリケーションのすべてのユーザーにMicrosoft Officeをインストールする必要がありますか?これらのInteropアセンブリは、.dllファイルなので、プロジェクトにファイルを公開するだけでなく、クライアントにインストールされているソフトウェアに関係なく参照を満たすことができないという点で他と大きく異なるのはなぜですか? (明らかに私はGACの理解が乏しく、Visual Studioの動作に影響を与えています)。自分のコードを使用して、必要なOfficeソフトウェアが存在するかどうかを調べることができます。その後、ユーザーは時に次のエラーが発生しないように私のセットアップ私の参照とClickOnceの設定を行う他にどのように
事務所ない、機能へのアクセスがない...この上の私の理解が間違っている場合は、インストールの試行ですか?
「アプリケーションをインストールまたは実行することができません。アプリケーションは、アセンブリのOfficeのバージョン11.0.0.0は最初のグローバルアセンブリキャッシュ(GAC)にインストールされている必要があります。
は、システム管理者にお問い合わせください。」
- Interop参照のCopyLocalプロパティをTrueとFalseの両方に設定しようとしました。
- 私のClickOnceアプリケーションファイルのリストでは、これらのアセンブリを含める、除外し、前提条件を設定しようとしました。
- 私の研究では、* C:\ WINDOWS \ assembly \ GAC *、* C:\ Program Files \ MicrosoftのVisual Studio 9.0 \ Visual Studio Tools for Office \ PIAを参照している人がいます。 \ Office11 *参照パスを変更する方法が見つかりませんでした。 http://msdn.microsoft.com/en-us/library/ez524kew(VS.80).aspxによれば、GACからの参照を追加できないため、他の人はどのように管理しましたか?
- 私は、C:\ Program Files \ Microsoft Visual Studio 9.0 \ Visual Studio Tools for Office \ PIA \ Office11 *からプロジェクトディレクトリに参照をコピーしてそこに参照しようとしました。私は私が知っている必要があります主なものは、どのように/私は私の出版物におけるこれらのアセンブリを含めると満足またはGACの要件をバイパスすることができた場合であると仮定し
場合
終了。
可能であれば、できるだけ具体的な質問に直接お答えください。記事は参考になりますが、私はすでにたくさんの記事を読んで、多くの提案された解決策を試してみましたが、成功していませんでした。これがどのようにして始まるのかという物流の理解が不足していることに留意してください。
私の理解の不足のために私を許し、あなたが提供できるすべてのお手伝いをありがとう。大変感謝しています!
ありがとうございます。これまでのところ私はバージョンの競合の問題を抱えていませんでした。2003年と2007年の両方のユーザーはこれらの機能をうまく使えました。私は本当に私が思っていることを本当にターゲットにするより簡単な質問があると思うが、アプリケーションの非Interop機能を使用できるようにするために、Officeのバージョンを持っていないユーザーに対してアプリケーションをインストールできるようにすることはできますか? Interopベースの機能を使用するにはOutlook/Excelが必要ですが、私のアプリケーションのほとんどはOfficeには関係ありません。 –
Interopコードの1つのインスタンスでは、Officeをインストールしたユーザーにアプリケーションを完全に限定しないと思っています。 –
ダウンロードオンデマンド(http://msdn.microsoft.com/en-us/library/ak58kz04(VS.80).aspx)を使用することを試してみることをお勧めします。 Office interopクラスを含むアセンブリを呼び出す/ダウンロードする場合は、Officeがインストールされているかどうかを確認する必要があります。私が知らないのは、ダウンロードオンデマンドアセンブリが実際にダウンロード要求されるまで、またはゲートからすべての可能性のある依存関係がチェックされるまで、ClickOnceが依存関係をチェックするのを遅らせるかどうかです。 –