Visual Studio 2005で開発されたアプリケーションがあり、ClickOnceを使用して展開しています。私のソリューションには、VBでコード化されたユーザーインターフェイスレイヤーとC#でコード化されたクラスライブラリの2つのプロジェクトが含まれています。私のC#クラスライブラリには、OutlookとExcelの相互運用機能アセンブリ(Microsoft.Office.Interop.OutlookとMicrosoft.Office.Interop.Excel、両方ともバージョン11)を使用するコードがいくつかあります。これが私の質問です。
- これが絶対的なものとして記載されている場所はわかりませんが、相互運用機能アセンブリを使用するアプリケーションをインストールするには、適切なバージョンのOfficeアプリケーション(Outlook / Excel)が必要であると理解しています。これは正しいです?
If(1. = Yes)Then
アプリケーションが相互運用機能アセンブリを使用して、ユーザーベース全体の一部のみが使用するいくつかの機能のみを使用する状況にどのように対処しますか?一部のユーザーのみがこれらの機能を使用する必要があるのに、アプリケーションのすべてのユーザーにMicrosoft Officeのインストールを要求する必要があるのはなぜですか?これらの相互運用機能アセンブリは単なる.dllファイルですが、プロジェクトでファイルを公開するだけで、クライアントにインストールされているソフトウェアに関係なく参照を満たすことができないという点で、他のアセンブリと大きく異なる点は何ですか?(明らかに、GACと、それがVisual Studioの動作に与える影響についての理解が不十分です。)独自のコードを記述して、それらを使用するいくつかの機能に必要なOfficeソフトウェアの存在を確認できれば幸いです。Officeなし、機能へのアクセスなし...
そうしないと
これについての私の理解が正しくない場合、ユーザーがインストールの試行時に次のエラーに遭遇しないように、参照とClickOnce設定をセットアップするにはどうすればよいですか?
「アプリケーションをインストールまたは実行できません。アプリケーションでは、最初にアセンブリオフィスバージョン11.0.0.0をグローバルアセンブリキャッシュ(GAC)にインストールする必要があります。
システム管理者に連絡してください。」
- 相互運用機能の参照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要件を満たすかバイパスする方法/かどうかだと思います。
可能であれば、私の特定の質問にできるだけ直接答えるようにしてください。記事は役に立ちますが、私はすでにたくさんの記事を読み、たくさんの提案された解決策を試しましたが、成功しませんでした。そもそも、これがどのように機能するかについてのロジスティクスについての私の理解の欠如を覚えておいてください。
私の理解不足を許してください、そしてあなたが提供できるどんな助けにも感謝します。よろしくお願いします!