問題タブ [strongname]
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 - 厳密な名前で.NETアセンブリにプログラムで(再)署名するにはどうすればよいですか?
アセンブリに厳密な名前を追加するためにコマンドラインを呼び出す以外に、厳密な名前が削除されたアセンブリを辞任できるAPIはありますか?
.net - 署名およびバージョン管理されたアセンブリにオブジェクトを逆シリアル化する
以前は、BinaryFormatter (c#) を使用してツリービューをシリアル化していました。まさにそれを行い、すべてのシリアル化可能なクラスを含むアセンブリには、厳密な名前が付けられ、署名され、新しいバージョン番号も取得されました (ただし、実装は変更されていません)。
byte[] 配列を逆シリアル化しようとすると、行
ArgumentNullException を生成します。(パラメータ名: type)
バージョン番号が問題だと思ったので、独自の Binder を実装しました。BindToType メソッドを上書きし、バージョンが修正され、正しい型が返されるようにしました。
ただし、その瞬間、プログラムは BindToType メソッドを離れますが、上記の例外が引き続き発生します。
これを修正するにはどうすればよいですか?
.net - アセンブリのリダイレクトが期待どおりに機能しない
プロジェクト アセンブリに強力な署名を導入しようとしています。
私のプロジェクト出力は XML で永続化され、タイプは (署名する前に) 次のように記述されます。
すべてのアセンブリがトークン 622edca63ee1770c を含む公開鍵で署名された後。次のように、app.config ファイルに <assemblyBinding> ブロックを導入しました。
私はまだエラーが発生しています:
ファイルまたはアセンブリ 'EPGWidget, Version=1.0.2406.20198, Culture=neutral, PublicKeyToken=622edca63ee1770c' またはその依存関係の 1 つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(HRESULT からの例外: 0x80131040)
次のようなコードの場合:
以下が実行されます。ただし、次の場合に機能します。
.net - 相互運用アセンブリに署名する必要がありますか?
VC++ で開発された一連の COM コンポーネントがあります。このようなコンポーネントへの参照が .NET プロジェクトに追加されると、Visual Studio は相互運用アセンブリを生成します。現在、そのようなアセンブリのセットがあります。
毎日のビルドを実行している間、生成されたすべてのバイナリにデジタル署名を付けます。私たちは作成者であるとは考えていないため、相互運用アセンブリは署名されていません。誰でも Visual Studio を使用して同じアセンブリを作成できます。
相互運用アセンブリにも署名する必要がありますか? また、厳密な名前 (sn.exe ユーティリティ) で署名する必要がありますか? そうする理由は何ですか?
.net - .snk ファイルはいくつ必要ですか?
いくつかの .NET アセンブリがあり、それぞれに厳密な名前で署名したいとします。1 つのキーペア (1 つの .snk ファイル) で十分ですか、それともアセンブリごとに 1 つのペアを生成する必要がありますか? (各) 鍵ペアの公開鍵を公開する必要がありますか?
.net - .snkファイルから公開鍵を公開する必要がありますか?
sn.exeユーティリティの説明とこの質問から、強い名前で署名されたすべてのアセンブリに公開鍵のコピーが追加されていることがわかります。これは、アセンブリバイナリが変更されていないことを検証するのに十分です。
しかし、特定のアセンブリが特定のキーペアで実際に署名され、特定の会社によってコンパイルされたことをどのように確認しますか?誰でも自分のキーペアを生成し、アセンブリを作成して、キーペアで署名することができます。アセンブリの出所を確認したい人が公開鍵を比較できるように、公開鍵を公開する必要がありますか?もしそうなら、そうするための最良の方法は何ですか?
.net - 厳密に名前が付けられたアセンブリの任意のバージョンを使用するように ASP.NET アプリケーションに指示するにはどうすればよいですか?
カスタム .NET ライブラリ (.DLL ファイル) を使用する ASP.NET アプリケーションがあります。その .DLL ファイルには厳密な名前が付けられています。ライブラリは頻繁に小規模な更新が行われるため、アプリケーションを再コンパイルせずにこの .DLL を更新できるようにしたいと考えています。アプリケーションのソースを顧客に提供したくないため、アプリケーションをプリコンパイルする必要があります (逆コンパイルできないわけではありませんが、それは重要なことではありません)。
これはなんとかできますか?現在、.DLL のバージョンが間違っているというエラーが表示されます。