vbc コンパイラを使用してアセンブリをコンパイルおよび署名するために、NAnt を使用しようとしています。プロジェクトをセットアップし、VS2010 でコンパイルするアセンブリに正常に署名できました。コマンドラインを使用して署名しようとすると、次のエラーが発生します。
vbc : error BC30140: Error creating assembly manifest: Error signing assembly -- The parameter is incorrect.
vbc.exe を使用してコンパイルおよび署名しない単純なアプリ (assemblyinfo.vb ファイルのみ) を作成しました。
ここに私のassemblyinfo.vbがあります:
Option Strict Off
Option Explicit On
Imports System
Imports System.Reflection
<Assembly: AssemblyVersionAttribute("2010.05.18.0918"), _
Assembly: AssemblyCopyrightAttribute("Copyright © Patient First 2007"), _
Assembly: AssemblyCompanyAttribute("Patient First, Inc."), _
Assembly: AssemblyProductAttribute("Patient First Framework"), _
Assembly: AssemblyDelaySign(false), _
Assembly: AssemblyKeyFile("test.pfx"), _
Assembly: AssemblyTitleAttribute("PatientFirst.Framework")>
test.pfx は、assemblyinfo.vb と同じフォルダーにあります。
これが私がそれをコンパイルしようとしている方法です:
vbc /target:library /verbose assemblyinfo.vb
私も使ってみました
vbc /target:library /verbose assemblyinfo.vb /keyfile:test.pfx
AssemblyDelaySign および AssemblyKeyFile 属性なしで /keyfile パラメータを使用してみました
AssemblyDelaySign 属性と AssemblyKeyFile 属性を削除し、/keyfile コマンド ライン パラメーターを省略した場合、正常にコンパイルされます。vbcでこれを行う正しい方法は何ですか?
--編集: AssemblyInfo.vb で定義したように、MSBuild も AssemblyKeyFile 属性を持つことを好まないことがわかりました。同じ失敗メッセージが表示されます。したがって、現在これを正しくビルドできる唯一の方法は、プロジェクトのプロパティを設定して、使用するキー ファイルを指定し、アセンブリに署名することです。
--編集: これが VS2010 内からプロジェクトをビルドするように見える理由は、msbuild が /keyfile を使用する代わりに、コマンド ラインで /keycontainer を vbc.exe に渡しているためです。/keyfile コマンド ライン パラメーターの使用方法がまだわかりません。