chilkatdotnet4.dllをgacに登録するのに問題があります
質問
.NET 4.0 .dllをGACに追加しようとしています。これを行おうとしています。これは、32党会社と64ビットの両方の.dllとして公開されているため、両方の形式で異なるプラットフォームで異なるアプリから使用する必要があります。
とにかく、Windows Server 2008環境でこのDLLをGACに登録するのに苦労しています。
「C: Program Files(x86) Microsoft SDKS Windows V7.0a bin netfx 4.0ツール」で見つかったgacutil.exe(およびサポートファイル)を「C: Windowsに」コピーしてみました。 microsoft.net framework v4.0.30319 "ターゲットプロダクションサーバーのフォルダーが見つかった提案 ここ.
次に、それらを「C: Windows Microsoft.net Framework64 V4.0.30319」にコピーしてみました。
両方の場所から実行すると、インストールが成功しました。そして実際、登録は成功しているようです:
- C: Windows Microsoft.net Assembly gac_64 chilkatdotnet4 v4.0_9.0.8.0__eb5fc1fc52ef09bd chilkatdotnet4.dll
- C: Windows Microsoft.net Assembly gac_32 chilkatdotnet4 v4.0_9.0.8.0__eb5fc1fc52ef09bd chilkatdotnet4.dll
ただし、次のメッセージを使用して、DLLエラーの(64ビット)バージョンを参照するコンソールアプリを実行します。
System.io.FileNotFoundException:ファイルまたはアセンブリ「Chilkatdotnet4.dll」またはその依存関係の1つをロードできませんでした。指定されたモジュールが見つかりませんでした。ファイル名: 'chilkatdotnet4.dll'
したがって、MKDIRを使用して次のGACエントリを手動で作成し、コマンドプロンプト(実際には機能する場合と機能しない場合があります。Gacutil.exeについて非常に特別なことがわかりません)からコピーしました。
- C: Windows Microsoft.net Assembly gac_msil chilkatdotnet4 v4.0_9.0.8.0__eb5fc1fc52ef09bd chilkatdotnet4.dll(64ビットバージョンのDLLを使用)
- C: Windows Assembly gac_64 chilkatdotnet4 v4.0_9.0.8.0__eb5fc1fc52ef09bd chilkatdotnet4.dll
- C: Windows Assembly gac_32 chilkatdotnet4 v4.0_9.0.8.0__eb5fc1fc52ef09bd chilkatdotnet4.dll
DLLの「インストール」のたびに、同じエラーをテストして受け取りました。どんなアイデアを歓迎します!
編集: :上記のGACの問題は、実際には犯人ではないかもしれません。結局のところ、新しいコンソールアプリプロジェクトを作成して.dllを直接追加しても(ビンに存在するように)、それでもSeverで実行できません。また、コンソールアプリは.NETフレームワーク4ではなく.NET 4.0クライアントプロファイルをターゲットにして作成されていることに注意しました。クライアントプロファイルをターゲットにして実行しようとすると、システムはどれも利用できないようです。 。しかし、私はaを実行しようとしました とてもシンプルです 両方とどちらの両方がサーバー上で実行されず、悪い.dllを参照している間、どちらも実行することはありません。
.NET 4.0コンソールアプリを実行するために発生する特別な種類のインストールはありますか?
解決
将来これに問題があるかもしれない他の人のために。 GACにDLLを登録している方法や、プロジェクトからそれを参照していた方法に関する一般的な問題ではありませんでした。
Chilkatdotnet4.dll(および他のバージョンは私が確信しています)は、Visual C ++で構築されました。そのため、展開されているサーバーには、適切なプロセッサアーキテクチャ用にVisual C ++ランタイムをインストールする必要があります。
2010年(.NET 4.0):
64ビットプラットフォームでx86アプリを実行している場合。 「32ビットアプリケーションを有効にする」= trueでアプリケーションプールにマークを付けるようにしてください。