2016-09-27 5 views
0

32ビットアプリケーションとしてビルドする必要のあるC#実行可能ファイルをビルドしています(他の環境制限のため)。ビルド後のステップとして、私はeditbin.exe \LARGEADDRESSAWAREを使って32ビットアプリケーションが2GB以上のメモリを利用できるようにしています。私はこれがStrong Nameの検証を破っていることに気付きました。LARGEADDRESSAWAREを有効にした後に強い名前の検証が失敗する

sn.exe -vf [my exe]

出力::私は厳密な名前を確認するためにsn.exe -vfを実行しeditbin.exeコマンドを実行する前に

Assembly '[my exe]' is valid

は、その後、私は `editbin.exe /LARGEADDRESSAWARE [my exe]' which just exits without any message. I verify that it's enabled to use more than 2GB by checking the headers via DUMPBIN /ヘッダ[私のexeファイル]を実行します。

最後に、私はsn.exeコマンドを再実行し、次の出力を得る:

Failed to verify assembly -- Strong name validation failed for assembly '[my exe]'を。

強力な名前の確認を解除せずにLARGEADDRESSAWARE機能をどのように有効にすることができますか?

答えて

0

厳密な名前は、厳密な名前のファイルのハッシュを考慮に入れます。 editbin.exe \LARGEADDRESSAWAREでファイルを変更すると、ファイル、つまりファイルのハッシュが変更され、厳密な名前が無効になります。

ビルド手順を変更し、アセンブリが厳密な名前のステップを実行する前にになるようにする必要があります。ビルドパイプラインによっては、Visual Studio内でその名前を強く指定するのではなく、代わりにコマンドラインを使用することができます。

+0

'sn.exe'を使用してコマンドラインを介して私は仮定していますか? – Fizz

+0

はい、sn.exeは厳密な名前を適用することができます。 –

関連する問題