問題タブ [gac]

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 投票する
4 に答える
4914 参照

visual-studio-2008 - Visual Studio の「発行 Web サイト」を取得するにはどうすればよいですか 1. web.config を上書きしない & 2. GAC から参照された dll のコピーを昇格させる

開発中に GAC から参照する aa ライブラリを使い始めました。Web サーバーにプロモートするときに、プロジェクトの bin ディレクトリに含まれる dll が必要です。また、ローカルとサーバーの web.config を異なるものにする必要があります。このライブラリを使い始める前は、VS のウェブサイト公開機能をとても楽しんでいました。今では邪魔になっているようです。

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

.net - COM 相互運用アセンブリの読み込みシーケンス

Outlook アドインで発生する非常に奇妙なアセンブリ参照の問題と読み込みの問題があります。詳細は次のとおりです(長い話:)):

.Net 1.1 を使用して記述およびビルドされた古い Outlook アドインがあります。アドインは、独自のアプリケーション ドメインで管理されていない shim を使用して読み込まれます。ユーザーのマシンに 1.1 が存在しなくても、.Net 2.0 で問題なく動作します。

このアドインは、Outlook 2000 に対して VS 2003 によって作成されたカスタム Outlook 相互運用機能アセンブリを使用し、その後再構築して厳密な名前を付けます (私のアドインのように)。

アドイン プロジェクトでは、このカスタム相互運用アセンブリのみを参照し、公式の MS 相互運用アセンブリへの参照はありません。

このアドインを Outlook 2007 と .Net 2.0 の環境で使用すると、公式の MS 相互運用機能アセンブリが GAC にインストールされているため、何らかの理由で、アドインがそれらを読み込んで使用することがわかります。

Connect クラスのコードには、using ディレクティブがあります。

これは、カスタム相互運用アセンブリの名前空間です。

Connect ctor には、次のコード行があります (テスト目的で追加されました)。

これは以下を出力します:

Outlook.Application の完全な種類: Outlook.ApplicationClass、Interop.Outlook、Version=9.0.0.0、Culture=neutral、PublicKeyToken=4cfbdc5349cf59d8

これはまさに私が期待したものです。

問題は、OnConnection(object application, Extensibility.ext_ConnectMode connectMode, object addInInst, ref System.Array custom) が呼び出されると、ログに表示されることです (現在のドメインの AssemblyLoad イベントへのフックがあります)。アセンブリもロードされます:

出力:

アセンブリ Microsoft.Office.Interop.Outlook、Version=12.0.0.0、Culture=neutral、PublicKeyToken=71e9bce111e9429c のロード元: GAC

私の OnConnection メソッドは次のように始まります。

これは以下を出力します:

OnConnection アプリケーション オブジェクトの完全な型は、Microsoft.Office.Interop.Outlook.ApplicationClass、Microsoft.Office.Interop.Outlook、Version=12.0.0.0、Culture=neutral、PublicKeyToken=71e9bce111e9429c です。

次の行で Outlook.Application に問題なくキャストできることがわかるので、これは非常に奇妙です。

Reflector で確認しましたが、アセンブリは Microsoft の相互運用アセンブリをまったく参照していません。私の Interop.Outlook.dll についても同じです。

それで、誰かが何が起こっているのか知っていますか?これらの質問に対する答えは何ですか:

  1. Microsoft アセンブリをロードするのはなぜですか?

  2. 異なるアセンブリで定義された、無関係なクラス/インターフェイス間でキャストするにはどうすればよいですか?

注: 新しいアドインを作成しました。これは非常に単純なもので、何もせず、ロードするだけです。私は問題を再現できたので、CLRがどの相互運用機能をどこからロードするかをどのように決定するかを知っている人はいますか? GAC以外に、COMオブジェクトとそれが必要とする相互運用の間にリンクがある別の場所(レジストリ???)はありますか?

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

visual-studio - windowsform クライアント アプリをデプロイしていますが、アセンブリがありません

外部 dll を使用してレポート アプリから小さなモジュールを完成させようとしています。ファイルを bin フォルダーに入れていますが、ClickOnce を使用してアプリを展開し、インストールが完了すると、すべての外部 dll が見つからないことがわかります。たとえば、 がMicrosoft.SqlServer.Types version 10.0.0.0ありません。

これらのアセンブリをクライアント GAC に自動的にインストールする方法はありますか?

0 投票する
4 に答える
4320 参照

gac - DLL には厳密な名前が付けられていますが、WSPBuilder ではそうではないと報告されます

WSPビルダー

バージョン: 0.9.8.0830 作成者 Carsten Keutmann GPL ライセンス 2007

[MYDLL] のインストールと展開 ソリューションを展開できません 内部例外 (1): このソリューションには、グローバル アセンブリ キャッシュを対象とするアセンブリが 1 つ以上含まれています。グローバル アセンブリ キャッシュに含まれるすべてのアセンブリには、厳密な名前を使用する必要があります。

0 投票する
4 に答える
64144 参照

c# - GAC にインストールされた DLL のパス

GAC に登録されている (可能性がある) DLL の (物理的な) インストール パスを取得するにはどうすればよいですか? この DLL は、.Net アプリ以外 (VS 以外の IDE を含む) でホストされる可能性があるコントロールです。

System.Reflection.Assembly.GetExecutingAssembly().Location を使用すると、winnt\system32 の GAC フォルダーのパスが提供されます。または、VS のデザイン モードでは、VS IDE へのパスが提供されます。

物理 dll が実際にインストールされているパス、または VS の bin/debug または (リリース) フォルダーを取得する必要があります。

理由は、このフォルダーに取得する必要がある XML ファイルがあり、デザイン モードと実行時の両方で使用される構成設定があるためです。

または、このシナリオをどのように処理するのが最善ですか? 現時点でデザインモードに使用している疑わしいネットワークの場所があります...(ApplicationDataフォルダーがそれをカットするとは思わないでください(ただし、ClickOnce経由でインストールされている.Netバージョンが保存されているため、Clickonceデータを使用できますフォルダ) )

0 投票する
4 に答える
338 参照

.net - Vista 用の MSI インストーラーを作成するときに、どのような追加手順を実行しますか?

3 つの dll を GAC にコピーする非常に単純なセットアップ プロジェクトがあります。それだけです。XP では正常に動作しますが、Vista マシンでは、ファイルに書き込めず、アクセス許可を確認できないというエラーが発生します。これは、Vista でのナンセンスななりすましに関係していると確信していますが、対処方法がわかりません。

他の誰かがこれに遭遇しましたか? もしそうなら、どのようにそれを克服しましたか?

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

.net - GACに含まれるアセンブリでの共有の処理

DLLを作成し、アイテムを「共有」(C#では静的)として宣言すると、最初に呼び出されたときにインスタンス化され、その後、そのオブジェクト参照が単一の参照として存続することを知っています。

したがって、一度設定された共有文字列プロパティを宣言すると、同じ値を取得するために再度呼び出すことができます。そして、そのスレッドセーフは、アプリケーションドメイン内の主要な関心事です。

アプリケーションドメインの外部で何が起こるか。アセンブリをグローバルアプリケーションキャッシュ(GAC)に配置すると、インスタンスはいくつ存在しますか?

たとえば、GACされた.dllの「MyFileName」という静的プロパティ。

次に、GACされた.dllを呼び出す2つのアプリケーションがあります。「MyFileName」のインスタンスはいくつ存在しますか?アプリケーション1からMyFileNameへの変更は、アプリケーション2が使用する値にコピーされますか?

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

c# - Visual Studio からの Gac 複数プロジェクト

現在、Visual Studio の外部ツールとして "gacutil /i $(TargetPath)" があり、単一のプロジェクトの gac'n で問題なく動作します。

複数のプロジェクトを選択して gac できるようにしたいので、バッチ スクリプトをまとめてテストします。

コマンドラインからテストすると、うまくいくように見えます。次に、「MultiGac.bat $(TargetPath)」として接続し、複数のプロジェクトを選択して試してみると機能しません。

アドインまたは外部ツールのいずれかを使用して、味などを達成するためのツールを作成した人はいますか? regsvcs も使用してみませんか?

ありがとう

0 投票する
10 に答える
107645 参照

visual-studio - Visual Studio から GAC で dll を参照するにはどうすればよいですか?

このアセンブリは GAC にあります: Microsoft.SqlServer.Management.RegisteredServers.dll

Visual Studio でこのアセンブリへの参照を追加するにはどうすればよいですか?

ファイルは c:\windows\assembly\ で表示できます

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

security - カスタムフィールドタイプをbinディレクトリにデプロイする

ここで述べたように 、カスタムフィールドタイプ(およびそれらが参照するdll)はグローバルアセンブリキャッシュにデプロイする必要があります。なぜ、そしてbinディレクトリにデプロイすることでどのような問題が発生する可能性がありますか?CASポリシーを記述してコードを保護しようとしていますが、フィールドコントロールは他のコードと共有されている多くのヘルプメソッドを使用しているため、これはショーストッパーのようです。

これまでのところ、binデプロイメントで私が見つけた唯一の問題は、機能を非アクティブ化してからSTSADMで再アクティブ化すると、フィールドタイプが正しくインストールされていないことを示すエラーメッセージが表示されることです。–forceスイッチを使用するか、GUIを介してアクティブ化すると、問題なく機能しているようです。