問題タブ [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.
.net - 実稼働環境で dll を GAC にデプロイする方法
dev で GAC をテストし、Visual Studio の CLI を使用して gacutil でインストールしました。
本番用には、Visual StudioのCLIもSDKもありません(私は思う)ので、私の質問は
gacutil を使用せずに dll を GAC にデプロイするにはどうすればよいですか? すべてのdllをサーバーと開発者のコンピューターに配置するために、一種のexeまたはmsiを作成することは可能ですか?
私を助けてくれてありがとう
dll - GAC での DLL のロード
現在、Windows GAC への DLL の取得に問題があります。このブログ投稿で説明されているように、 DLLを作成してロードする手順を実行しようとしました。 アクティブ ディレクトリ フェデレーション サービスのカスタム認証プロバイダー-3-0-part-2.aspx
次のコマンドを呼び出そうとした時点で:
System.EnterpriseServices が見つからないというエラーが表示されます。
"1" 個の引数を指定して "Load" を呼び出し中に例外が発生しました: "ファイルまたはアセンブリ 'System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7514a164b89fa979' またはその依存関係の 1 つを読み込めませんでした。システムが見つかりません指定されたファイル。」
指定された DLL (System.EnterpriseServices) がマシン上に存在します*。
だから今私の質問は、なぜこのメソッドがDLLを見つけられないのか、そしてこのコマンドを機能させるために何をしなければならないか/変更しなければならないのかということです.
注: ADFS パーツのみがインストールされたバニラ Windows Server 2012 R2 でこれを試しました。そして、Powershell からコマンドを呼び出しました。
*更新: System.EnterpriseServices DLL は、
C:\Windows\Microsoft.NET\assembly\GAC_64\System.EnterpriseServices\v4.0_4.0.0.0__b03f5f7f11d50a3a
および
C:\Windows\WinSxS\amd64_system.enterpriseservices_b03f5f7f11d50a3a_4.0.9600.1638にあります。 4_none_53a3f9b13fac0ba5\
したがって、GAC から利用できるはずです。
.net - gacutil を使用してアセンブリをグローバル アセンブリ キャッシュ (GAC) にインストールできない
Windows Server 2008 R2 のグローバル アセンブリ キャッシュ (gac) にアセンブリをインストールしたいと考えています。前回の Windows Update 以降、機能していません。
たとえば、AjaxControlToolkit を使用します。
まずツールsnで確認してから、gacutilでgacutilと-iオプションを使ってインストールしてみます。コマンド プロンプトには次のように表示されます。
sn を使用したチェックでは、アセンブリに問題がなく、正しい文字列が署名されていることが示されています。それにもかかわらず、gacutil は厳密な名前の署名を検証できません。
c# - Json.NET 7.0.1 にアップグレードするとインストール エラーが発生する
私は自分のプロジェクトの 1 つで Json.NET を使用していますが、そのままで問題なく動作しています。しかし、私は最近、かなり古いバージョン 4.5.9 を現在のバージョン 7.0.1 に更新したいと思っていました。ご存知のように...最新の状態にするためです。
NuGet 経由でバージョン 4.5.9 をインストールし、更新機能を使用しました。
次のデプロイ (Visual Studio 2012 ビルドイン クリックオンス経由でデプロイ) の後、クライアント pc で、Newtonsoft.Json DLL を参照している「XXX をグローバル アセンブリ キャッシュにインストールする必要があります」というエラーが表示されます。
このエラーを修正する理由や方法がわかりません。Json.NET に関するすべてを既に設定しており、発行設定の [アプリケーション ファイル] ダイアログに含める必要があります。これは修正されませんでした。
ただし、7.0.1 をアンインストールして 4.5.9 を再インストールすると (すべて Nuget 経由)、エラーは修正されます。
このエラーなしで 7.0.1 バージョンをデプロイできないのはなぜですか?
ご清聴ありがとうございました。
c# - VS 2015 は、コピー ローカル設定に関係なく、プロジェクト参照の GAC 参照を出力するためにコピーします
その動作の接続の問題を提起しました。
VS 2015
GAC
コピー ローカル設定に関係なく、プロジェクト参照の
出力参照にコピーします。VS 2010
コピーローカルプロパティを尊重して、同じソリューションとプロジェクトではそれを行いません。これまでに見つけた唯一の回避策はMicrosoft.Web.Services3.dll
、プロジェクト A に直接参照を追加し、ローカル = false をコピーするように設定することです。
再現する手順:
実際:
Microsoft.Web.Services3.dll
プロジェクト A の出力ディレクトリにコピーされます。
期待される:
Microsoft.Web.Services3.dll
プロジェクト A の出力ディレクトリにコピーされていません。
なぜこれが起こるのか分かりますか?MSDNのドキュメントには、GAC
依存関係を出力にコピーしてはならないことが明確に記載されており、それをVS 2010
尊重しています。
asp.net - .NET アセンブリが GAC から読み込まれない
私は一日の大半を机に頭をぶつけていて、一生これを理解することができません。明らかにグローバル アプリケーション キャッシュにあるアセンブリが、それを使用しようとしている Web アプリによって検出されません。私がウェブ上で見つけることができるものはすべて、GAC からの読み込みを回避する方法がないことを前提としているか、明示的に述べています。これはグローバルで必須の動作です。それでも、私の場合、それは失敗しているようです。
.aspx ページがそれを使用しようとしたときのエラー:
更新: ビルド時にプロジェクトに含まれるように、欠落している .dll に対して「ローカルのコピー」を「true」に設定しようとしました。今、私は別のエラーが発生します:
したがって、.dll がプロジェクトにある場合、IIS はそれと GAC の両方を検出し、競合について不平を言うという状況です。アセンブリがプロジェクトにない場合、IIS はどちらも見つけることができません。さらに、エラー メッセージが示す GAC パス (c:\Windows\assembly\GAC_MSIL\CrystalDecisions.Web) を開こうとすると、「存在しません」というエラーが発生します。
私は以前よりもさらに迷っています。何がそのような奇妙な動作を引き起こす可能性がありますか?
c# - アプリケーションにはアセンブリが必要です ... グローバル アセンブリ キャッシュにインストールする必要があります
C# を使用してウィンドウ アプリケーションを作成しました。成功したアプリケーションを公開しています。
アプリケーションをインストールしようとすると、以下のエラーが表示されます。
以下と自動的に同じプロジェクトを設定することに関するいくつかの解決策が見られます
dllをGACに入れたくありません。
これに対する提案または解決策。
私は次のURLを通過しました
エラー メッセージ「アプリケーションをインストールまたは実行できません。アプリケーションには、GAC で stdole バージョン 7.0.3300.0 が必要です」アプリケーション
をインストールまたは実行できません: 1 回クリック
.net - InstallShield が更新時に GAC アセンブリをアンインストールしないようにする
InstallShield インストーラーによって GAC にインストールされたアセンブリがあります。プログラムがアンインストールされても DLL が保持されるように、コンポーネントは Permanent としてマークされます。これまでのところ、問題なく動作しています。
ただし、プログラムを更新すると、2 つのバージョンの DLL がグローバル アセンブリ キャッシュに存在することが予想されます。以前のバージョンの DLL と新しいバージョンの DLL です (Permanent プロパティが Y に設定されているため、以前のバージョンはアンインストールしないでください)。しかし、そうではありません。更新後は最新バージョンのみが存在します。
私の理解では、InstallShield は私の DLL に論理パスを割り当てます。[GlobalAssemblyCache]MyAssembly.dll
、バージョンに関係なく。したがって、GAC に別のパスがあっても、InstallShield は GAC の DLL を置き換えます。
私の行動の理解は正しいですか?いずれにしても、InstallShield が以前のバージョンを削除しないようにするにはどうすればよいですか?
ありがとう、