sgenツールを使用してアセンブリを作成する署名付きクラスライブラリがあります。ただし、次のコマンドを実行しようとするとエラーが発生します。
$ sgen.exe /a:testsign.dll / force /compiler:/keyfile:..\..\testsign.pfx / verbose / n
エラー:一時クラスを生成できません(結果= 1)。
エラーCS1548:アセンブリの署名中に暗号化エラーが発生しました'[... path ...]\TestSign.XmlSerializers.dll'-'アセンブリの署名エラー---パラメータが正しくありません。'さらにヘルプが必要な場合は、「sgen /?」と入力してください。
私はMSDNで次のようなエラーを確認しました
CS1548は、アセンブリの署名が失敗したときに発生します。これは通常、無効なキーファイル名、無効なキーファイルパス、または破損したキーファイルが原因です。
ただし、キーを作成したばかりで、パスは正しく、私の知る限り、VisualStudio2010は破損したキーを作成しません。
この問題の再現はかなり簡単です。
- ここに貼り付けたコードを使用して、新しいクラスライブラリを作成します。
class TestSigning
1つと1つの2つのクラスを作成しますclass Model
- [プロジェクトのプロパティ]>[署名]に移動し、[このアセンブリに署名する]を確認します
- 新しい厳密な名前のキーファイルを作成します
- Visual Studioコマンドプロンプトを開く(2010)
- dllを見つけて実行します
sgen /a:<dllname> [... as above ...]
私の推測では、キーファイルの公開キーを使用していると思います。しかしsgen
、キーファイルを保護するために使用したパスワードをどのように通知するかについての情報源は見つかりません。
どうすればいいのかわかりません。私がここでSOで見た他のスレッドには、同じエラー「ヘッダー」unable to generate temporary class
がありますが、エラーの詳細が異なり、Cryptographic failure
(私が見つけた)スレッドはありません。