問題タブ [global-assembly-cache]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net - グローバル アセンブリ キャッシュ (GAC) を本当に使用する必要があるのでしょうか?
.NET Web アプリケーションを何年も構築してきましたが、GAC を使用したことがありませんか?
私は何が欠けていますか?それとも、私はそれから離れた方が良いですか?
c# - 1つのDLLを参照する複数のプログラムを展開する方法は?
相互運用性と関連するDLLを使用する多くのプロジェクトがあります。すべてのプロジェクトには、セットアップで個別のDLL参照がありますが、基本的にすべてのプロジェクトで同じDLLが使用されます。そのため、セットアップのインストール/インストール中にDLLが登録/登録解除されると、問題が何度も発生します。
また、上記のアプローチは、セットアップ場所が変更された場合、またはDLL参照場所が変更された場合に問題を引き起こす可能性があります。
DLLを1つの場所に配置する必要があり、登録/登録解除の問題を回避するために、すべてのプロジェクトでその場所からのDLL参照を使用する必要があります。しかし、依存関係について.netに実際の参照がどのように配置されているのか疑問に思います。
どうすればそれができますか?そのためのより良い解決策または回避策はありますか?
.net - ネットワーク経由で GAC へのアセンブリのインストールを自動化するにはどうすればよいですか?
30 台以上のサーバーの GAC に同じアセンブリをインストールする必要があります。各サーバーに RDP を実行してアセンブリ マニュアルをインストールする必要はありません。ネットワーク経由でアセンブリを GAC にインストールする簡単な方法はありますか?
.net - Wix - アセンブリを GAC に動的に登録する
.NET アセンブリを GAC にインストールする Wix インストーラーを作成しています。簡単...
私の質問は: 正確なアセンブリ名をハードコーディングすることなく、既存のネットワーク フォルダーにある任意のアセンブリをプルして、それぞれを登録できるように、このシナリオを将来証明することは可能ですか? これにより、将来何度も再利用できる単一の MSI を作成できます。
現在、私のコードは個々の DLL を指しており、次のようになっています。
excel - MicrosoftOffice相互運用機能アセンブリのリファレンス
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要件を満たすかバイパスする方法/かどうかだと思います。
可能であれば、私の特定の質問にできるだけ直接答えるようにしてください。記事は役に立ちますが、私はすでにたくさんの記事を読み、たくさんの提案された解決策を試しましたが、成功しませんでした。そもそも、これがどのように機能するかについてのロジスティクスについての私の理解の欠如を覚えておいてください。
私の理解不足を許してください、そしてあなたが提供できるどんな助けにも感謝します。よろしくお願いします!
asp.net - VB.NET クラスを GAC に追加し、コード ビハインドで使用する方法
VB.NET クラスを作成し、強力なキーを作成し、GacUtil を使用してGACに追加しました。その部分はスムーズに進みました。アセンブリは GAC にインストールされ、正しくインストール/構成されているようです。
参考までに、アセンブリはテスターと呼ばれるクラスであり、文字列「Hello World」を返す HelloWorld と呼ばれるパブリック静的メソッドを 1 つ公開します。
次のステップは、Visual Studio 2005、Windows XP SP3 を使用して、テスト Web アプリケーション (VB.NET および ASP.NET 2.0) を作成することでした。テスト Web アプリケーションを作成し、web.config ファイルの構成セクションに以下を追加しました。
次に、次のように aspx ページにインライン コードを追加しました。
Web ブラウザーでページを実行すると、実際にすべてが期待どおりに機能します。ページは「Hello World」を出力し、すべて問題ないようです。
ただし、コード ビハインドページでこのコードを使用する方法がわかりません。「システムのインポート」と同じように、アセンブリをインポートしようとしましたが、IntelliSense に表示されません。
また、プロジェクトへの参照としてアセンブリを追加しようとすると、インストールされているアセンブリのリストにアセンブリが見つかりません。これは、インストールされているアセンブリの動的リストからではなく、レジストリからリストが取得されたためだと思います。
私の目標は、プロジェクト参照として追加するのではなく、web.config ファイルを介してアセンブリを追加し、コード ビハインド ページでアセンブリを使用することです。
何か案は?
.net - プログラムで.NETアセンブリをGACにインストールする方法
.NETアセンブリをGACにインストールするには、小さなアプリまたはスクリプトを作成する必要があります。これを行うには、次のようないくつかの方法があることを読みました。
- を使用して
gacutil.exe
次のコード行を実行します。
new System.EnterpriseServices.Internal.Publish().GACInstall("Foo.dll");
ただし、マシン上に適切なディレクトリを作成し、アセンブリをそのディレクトリにコピーした場合はどうなりますか?GACディレクトリの構造は次のとおりです。 C:\Windows\assembly\GAC_MSIL\Foo\<version#>__<public token>\Foo.dll
上記の2つの方法は、フォルダー構造を作成してアセンブリを配置する以外に、何か特別なことをしますか?
.net - 変更したdllをグローバルアセンブリキャッシュに追加するにはどうすればよいですか?
MySQLコネクタ/NETをPCにインストールしています。ソースコードを変更し、dllの1つ(MySQL.Data.dll)を再コンパイルしました。プログラムがすでにインストールされている場合、このdllをグローバルアセンブリキャッシュに追加するにはどうすればよいですか?
回答にgacutil.exeの使用が含まれている場合は、PCのどこにあるか、またはどこにダウンロードできるかを教えてください。ありがとう!
.net - アプリケーションに GAC からの DLL がロードされているかどうかを確認する
DLL の新しいコピーをリモート サーバー上の GAC に展開しようとしていますが、現在実行中のプロセスに、置き換える DLL のコピーが読み込まれているかどうかを確認する必要があります。少なくともユーザーに伝えてください。
たとえば、Biztalk は、必要な DLL を最初に使用するときにロードするように見えます。その後、それらを置き換えると、ホスト インスタンスが再起動されるまで古いコピーがメモリに保持されます。これは、デプロイの一部として簡単に実行できます。
.NET を使用して、どのプロセスが GAC から特定の DLL をロードしたかを知る方法はありますか?
アップデート:
さらに調査すると、Process Explorer にはこの機能があり、別の Sysinternals ツールであるListDLLは、私がやりたいことを正確に実行することがわかりました。ListDLL をインクルードしてスクリーンスクレイピングする必要なく (ライセンス内で許可されている場合でも)、この機能をアプリケーションに複製したいので、彼らがどのようにそれを行うのか知りたいです。
windows-7 - アセンブリを GAC に手動でコピーするにはどうすればよいですか?
Windows 7 Ultimate を使用しており、ファイルを手動で GAC にコピーしようとしています。Windows Explorer を使用してみましたが、すぐに「アクセスが拒否されました」と表示されます。昇格された権限でコマンドラインを使用しようとしましたが、ファイルがコピーされたと表示されますが、アセンブリがどこにも見つかりません。
サード パーティのスプレッドシート コンポーネント (GemBox) を更新していますが、更新プロセスでは、新しいバージョンのアセンブリを開発マシンの GAC に手動でドロップする必要があります。助言がありますか?