問題タブ [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.

0 投票する
2 に答える
2037 参照

.net - 常に最新バージョンのGACされたdllを使用するように.net参照を定義しますか?

私たちには、私が提供したdllを利用するアプリケーションを作成しているベンダーがいます。上司は、dllのいずれかに変更を加える必要がある場合は、プロジェクトを再コンパイルできるように、更新されたバージョンをベンダーに提供する必要があることを知りました。自動テストがなく、新しいビルドではQA部門による完全な実行が必要になるため、これにより問題が発生します。

私はこれまでGACをあまり使ったことがありませんが、それが私たちが探しているものである可能性があると信じています。dll(ベンダーに提供するもの)をGACにデプロイし、GACから常に最新バージョンを取得するような方法でベンダーに.netプロジェクトをビルドさせる方法はありますか?

0 投票する
1 に答える
1313 参照

installshield-2009 - installshield を使用して GAC 内の同じバージョンの DLL を置き換える

最近、サードパーティの「テスト」DLL を使用してアプリの 1 つを更新しました。サード パーティは、DLL のアセンブリ バージョンを更新せず、ファイル バージョンのみを更新するため、複数のアプリがその異なる "バージョン" を参照できます。ただし、GAC は常に更新されるファイル バージョンもチェックするため、最新バージョンを維持することができます。

何が起こったのかというと、この DLL をリリースする準備ができていませんでしたが、一部の顧客のマシンで公開されてしまいました。現在のライブ バージョンを元に戻したいのですが、テスト DLL と同じバージョンのファイル (および同じアセンブリ バージョン) があります。この DLL を参照するアプリが複数あるため、単純に削除して新しいものをドロップすることはできません。

GAC の DLL を置き換える方法はありますか? 私は installshield 2009 を使用しています。おそらく、インストール時のカスタム アクションのようなものでしょうか?

0 投票する
1 に答える
360 参照

.net - 共有 IIS 6 サーバー上の GAC の leiu で禁止されているビン展開 DLL

一緒に働いている組織での最近のセキュリティ ポリシーの変更について、フィードバックを求める必要があります。彼らは最近、共有 IIS 6 アプリケーション サーバーへの DLL のバイナリ展開を禁止しました。これらのサーバーは、多くの分離された Web アプリケーション プールをホストします。新しいルールでは、すべての DLL を GAC にインストールする必要があります。

ASP.NET MVC フレームワーク、HTML アジリティ パック、ELMAH、および独自の共有クラス ライブラリを含むいくつかの dll をバイナリ展開するため、これは私にとって問題です。私がこれを行う理由は次のとおりです。

  • グローバル アセンブリ キャッシュに対する Web アプリケーション サーバーの依存関係を排除します。
  • 私 (開発者) は、アプリケーション内で何が起こっているかを制御できます。
  • アプリケーションを「パッケージ」としてデプロイできるようにします。
  • サーバー管理者からアプリケーション展開の負担を取り除きます。

さて、ここに私の質問があります。

  • セキュリティの観点から、GAC と bin 展開を使用する利点は何ですか?
  • GAC で同じ DLL の複数のバージョンをホストすることは可能ですか?
  • 誰かが同様の制限に遭遇しましたか?
0 投票する
2 に答える
136 参照

assemblies - GACについての混乱

インタビュー中に、インタビュアーが Global Assembly Cache (GAC) についてこの質問をした後、私は混乱しました。答えは何ですか?

質問 1: アセンブリを GAC に保持する代わりに、ディレクトリを作成してそこにアセンブリを保持し、そのディレクトリを共有として作成すると、接続されたコンピューターがそれらのアセンブリを使用できるようになりますか? アセンブリを GAC と共有フォルダーに保持した場合の違いは何ですか?

編集済み: 質問 2: Visual Studio 対応の開発マシンが 4 台あるとします。それらのうち、1つはサーバーとして機能します。他のマシン (サーバー マシン以外) は、サーバー マシンの GAC でアセンブリを使用できますか?

0 投票する
2 に答える
6479 参照

visual-studio-2010 - すべてのビルドでのGACのインストール-確実に行う方法

Visual Studioを使用してアプリケーションをコンパイルするときに、アプリケーションアセンブリをGACに確実に自動インストールしたいと思います。Webアプリケーションのビルドでビルド前とビルド後のイベントを設定しました。

ビルド前のイベント:

ビルド後のイベント:

ご覧のとおり、新しいアセンブリが機能し始めるために、Webアプリケーションプールもリサイクルしています。

私が抱えている問題は、これが非常に信頼性の低いプロセスであるということです。Webアプリケーションが失敗した場合、アンインストールが失敗するため、次のビルドは失敗します(ビルド後は前のビルドで実行されませんでした)...など。

このプロセスを可能な限り信頼できるものにしたいと思います。アセンブリが存在する場合は条件付きでアンインストールし、存在するかどうかに関係なく強制的にインストールしたいと思います...しかし、次の理由から、ビルド前のイベントは依然として重要です。

重要

ビルドが行われる前にすべてのアセンブリが完全にアンインストールされることが重要です。そうしないと、出力ディレクトリにコピーされません(コンパイラがGACでアセンブリを検出するため)。したがって、GACのインストールは、出力\binフォルダにアセンブリが見つからないため失敗します。

WebアプリケーションビルドでGACのアンインストールとインストールを確実に行うにはどうすればよいですか?

0 投票する
2 に答える
188 参照

.net - サポートするアセンブリをGACに登録する必要がありますか?

最近、自分が作成したカスタムSharePointジョブのために、GACにアセンブリを登録する必要がありました。インストールすると、「またはその依存関係の1つ」アセンブリをロードできなかったというエラーがスローされ始めました。メインアセンブリを認識させるために、GACにサポートアセンブリ(たとえばSystem.Collections)を登録する必要がありますか?

0 投票する
3 に答える
1399 参照

asp.net - ウィンドウがこのアセンブリを見つけられないのはなぜですか?

Windows ログに次のエラーが表示され続けます。

しかし、それが話しているアセンブリは、私の GAC に既に表示されています。

代替テキスト

ここで何か不足していますか?GAC のすべてがエラー メッセージと一致します。どうしてWindowsはこれを見つけられなかったのですか?

0 投票する
1 に答える
289 参照

.net - GAC'd アセンブリの使用を強制する方法は?

GAC にある必要があるアセンブリを使用するアプリケーションに取り組んでいます。私の問題は、GAC でアセンブリを更新するときに、サービスに新しいアセンブリを取得させるためにマシンを再起動する必要があることです。GAC 化されたアセンブリを使用しているサービスに、強制的に新しいアセンブリの使用を開始させる方法はありますか?

GAC 化されたアセンブリを使用するサービスは、SharePoint Timer Services です。そのサービスの停止と開始、およびIISの停止と開始を試みました...

0 投票する
1 に答える
177 参照

c# - ユーザー アプリが変更されるたびに、アセンブリを GAC に再デプロイする必要がある


したがって、基本的には、コンポーネントの 1 つである App.exe によって使用される厳密な名前 (厳密に署名された) アセンブリ x.dll があります。アセンブリの署名キーはリポジトリにあり、アセンブリは書き込みによって署名されています

アセンブリは、共通パッケージをインストールするインストーラーによって GAC に配置されることになっています。common.msi という名前にしましょう。ただし、コンポーネント自体は App.msi によってインストールされます。一緒に展開すると、すべてが機能します。しかし、x.dll とはまったく関係のない変更が App.msi に加えられ、App.msi が再展開されると、App.exe は x.dll を見つけられません。x.dll は変更されないことに注意してください。ただし、common.msi も展開すると、すべてが機能します。だから私は、ビルドバージョンか何か、または私が何も知らないマニフェストに問題があるに違いないと推測しています。私が間違っていることは明らかですか?アセンブリを個別に展開し、変更されない限り触れず、それを使用するコンポーネントが変更されるたびに再展開することはできませんか? ありがとう。

編集:ssemblyをGACに入れることは要件です(私には何もできません)

0 投票する
1 に答える
2614 参照

asp.net - Gacutil.exe はどこにありますか?

重複の可能性:
vs 2008 を使用した Gacutil の場所

Gacutil.exe がどこにあるかについての答えが見つからないようです。私は Windows 7 を使用しており、1.0 から 4.0 までの現在の .NET バージョンがすべてあり、Visual Studio 2008 および 2010 Professional がインストールされています。

何か案は?