問題タブ [assemblies]
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.
c# - 複数バージョンのアセンブリを参照する方法
私はSharepointアプリケーションを開発しており、.NET AjaxControlToolkitライブラリを使用しており、Sharepointにカスタムaspxページを追加しています。Sharepoint 2007はクァークズモードで実行されるため、AJAXライブラリにいくつかの変更を加えて、通常どおりに動作するようにしました。問題は、他のチームがすでにAJAXライブラリを使用していて、それが私のものとは異なるバージョンであるということです。binフォルダーには同じ名前のdllが1つしかないため、これにより競合が発生しました。
私の知る限り、.NETはこの状況を簡単に処理できるはずです。厳密な名前とGACを使用して解決しようとしましたが、それでもbinフォルダー内のdllを参照しています。binフォルダーにAjaxControlToolkit.dllがない場合、アプリケーションは単にアセンブリのロードに失敗します。
このように完全なアセンブリ情報を使用する場合
コンパイラエラーCS0433が表示されます
アプリケーションで複数のバージョンのアセンブリを使用する方法について誰かが私を助けてくれますか?
c# - 存在しないmscorlib.XmlSerializers.DLLのFileNotFoundException
XmlSerializerを使用してmscorelib.dllの特定のタイプを逆シリアル化します
FileNotFoundException
これにより、アセンブリがロードされたときにキャッチがスローされます。
「ファイルまたはアセンブリ'mscorlib.XmlSerializers、Version = 2.0.0.0、Culture = neutral、PublicKeyToken=b77a5c561934e089'またはその依存関係の1つを読み込めませんでした。システムは指定されたファイルを見つけることができません。」
FusionLog:
mscorlib.XmlSerializers.DLLがないことを知っている限り、DLL名は.Netがシリアライザーを探して自動生成したものだと思います。
シリアル化を最適化するためにコンパイルするときにmyApplication.XmlSerializers.DLLを作成するオプションがあるので、これはフレームワークによるチェックの一部であると思います。
問題は、これがアプリケーションのロードに遅延を引き起こしているように見えることです-この時点で数秒間ハングしているようです。
これを回避またはスピードアップする方法はありますか?
c# - オーソリティを使用した .Net 動的プラグインの読み込み
次のことを行う必要があるシステムについて、どのような推奨事項を提供できますか?
プラグインをロード (そして最終的に実行) しますが、これらのプラグインをロードするには 2 つの方法があります。
- 許可されたプラグインのみを読み込む (ソフトウェアの所有者によって開発された)
- すべてのプラグインをロード
そして、承認されたプラグインが本物 (変更されていない) であることを合理的に保証する必要があります。ただし、すべてのプラグインは個別のアセンブリにある必要があります。プラグインに厳密な名前のアセンブリを使用し、公開鍵をローダー アプリケーションに保存することを検討してきましたが、ローダー アプリケーション内で公開鍵を変更するのは簡単すぎるように思えます (ユーザーがそうしたい場合)。ローダー アプリケーションの難読化。もっと安全なアイデアはありますか?
.net - ロードされたアセンブリを決定する
.NETデスクトップアプリケーションがロードしたすべてのアセンブリを確認するにはどうすればよいですか?電話で顧客に問い合わせて、PCに搭載されているXYZのバージョンを確認できるように、それらをアバウトボックスに入れたいと思います。
管理されたアセンブリと管理されていないアセンブリの両方が表示されると便利です。リストが長くなることは承知していますが、インクリメンタルサーチを行う予定です。
web-applications - Web アプリのフッターに基盤となるソフトウェアのバージョンを表示していますか?
dlls
Web アプリケーションのフッターに、たとえばデータベース スキーマとビジネス ロジックのバージョンを提供することを考えています。
これはお勧めですか?
これを最善の方法で行うための落とし穴や指針はありますか?
ユーザビリティの懸念?
CI ソリューションで使用する、スキーマと dll の両方のバージョン スキームが既にあります。
c# - .NETアセンブリでクラスとメソッドを内部化する
複数のアセンブリのセットがあります(1つのアセンブリがAPIとして使用され、他のアセンブリに依存します)。すべてのアセンブリを1つの単一のアセンブリにマージしたいのですが、APIを除くすべてのアセンブリが外部から見えないようにします。
次に、このアセンブリをXenocodeで難読化します。私が見てきたことから、Xenocodeでアセンブリを内部化することは不可能です。
MicrosoftのILMergeを見たことがありますが、それが私が望むことを実行できるかどうかを理解できませんでした。 http://research.microsoft.com/~mbarnett/ILMerge.aspx
.net - .NET アセンブリに署名するためのベスト プラクティスは?
5 つのプロジェクトで構成されるソリューションがあり、それぞれが個別のアセンブリにコンパイルされます。現在、コード署名を行っていますが、間違っていると確信しています。ここでのベストプラクティスは何ですか?
- それぞれに異なる鍵で署名します。パスワードが異なることを確認してください
- それぞれに異なる鍵で署名します。必要に応じて同じパスワードを使用します
- それぞれに同じ鍵で署名する
- まったく別のもの
基本的に、「署名」が彼らに何をするのか、またはベストプラクティスがここにあるのかよくわからないので、より一般的な議論が良いでしょう. 私が本当に知っているのは、FxCopが私に怒鳴ったということだけです。「このアセンブリに署名する」チェックボックスをクリックし、Visual Studio (2008) を使用して .pfx ファイルを生成することで簡単に修正できました。
.net - アプリケーションが必要とするアセンブリのリストを取得する
.net プロジェクトに必要なすべてのアセンブリ (.net フレームワークを除く) を、セットアップ ファイルとしてnsisにパッケージ化できるフォルダーに入れる方法はありますか?
リフレクションを使用して dll のリストを取得する小さなコンソール アプリを作成しようとしましたが、dll が .net フレームワークからのものかどうかを判断する簡単な方法を見つけるのに苦労しました。
答えは、すべての依存関係を出力する Visual Studio の単純なスイッチ、またはそれを実行できるスタンドアロン アプリ、Nsis のプラグイン、または私が見逃したリフレクションに関する情報である可能性があります。
.net - アセンブリが .NET Framework の一部であるかどうかの判断
アセンブリ名またはアセンブリ クラス (またはそれに類するもの) から、アセンブリが.NETフレームワーク (つまり)の一部であるかどうかをどのように判断できSystem.windows.Forms
ますか?
これまで、PublicKeyToken と CodeBase のプロパティについて検討してきましたが、これらはフレームワーク全体で常に同じであるとは限りません。
この情報が必要な理由は、クライアント コンピューター上にある必要がある、EXE ファイルが使用しているアセンブリのリストを取得するためです。これにより、Visual Studio セットアップ システムを使用せずにセットアップ ファイルに正しいファイルをパッケージ化できます。問題は、.NET フレームワーク アセンブリを一切取得したくないということです。また、メジャー アップデートが終了したときに簡単にロールアウトできる自動プロセスにしたいのです。
究極の解決策は、 IsFramework プロパティがあることです... :)
c# - 同じアセンブリの異なるバージョンの読み込み
リフレクションを使用して、同じアセンブリの 2 つの異なるバージョンを読み込む必要があります。同じプロセスで 2 つの異なる AppDomains に 2 つのバージョンをロードできますか?
アプリの古いバージョンから新しいバージョンにデータを移行する必要があります。これが可能かどうか、または 2 つの別々のプロセスを使用する必要があるかどうかをお知らせください。