2016-05-13 5 views
2

アプリケーションのエントリポイントアセンブリは強力な名前のキーで署名されているため、.NETではすべての参照アセンブリにも署名が必要です。署名されていないアセンブリを公開するパッケージでは、ildasm/ilasmを使用して、hereのプロセスで手動で署名し、強力な名前のアセンブリをgitリポジトリにチェックインしました。NuGet署名付きDLLを上書き復元

ビルドマシンでは、署名済みのDLLを取得するためにgit pullを実行し、残りのパッケージを復元するには.nuget\NuGet.exe restore App.slnを実行しました。 NuGetの復元では、パッケージフォルダの下に署名/チェックインされたアセンブリファイルが上書きされませんでした。

最近では、これはもはや動作していないことに気付き、署名されたDLLのうちの1つのみであることに気付きました。nuget restoreは、パッケージに付属する元の署名されていないアセンブリで上書きします。なぜこれが今や異なった働きをしているのか、なぜパッケージの1つだけに起こっているのか理解できません。

  • NuGet restoreは、パッケージの既存のDLLを上書きするタイミングとスキップするタイミングをどのように決定しますか?
  • 署名されていないパッケージを使用するときに、このような厳しい名前付け要件に対処する方法はありますか?

NuGet.exeのバージョンは3.4.3です。

ありがとうございます!

答えて

2

NuGet source最新のものを見ると、packagesディレクトリのmissing .nupkgファイルの初期チェックがあるように見えますが、project.jsonファイルを使用していないと仮定しています.nu​​pkgファイルが見つからないNuGetパッケージのみを復元します。しかし、これは私がコードを読んでいるだけで、理想的には、それが本当に動作するかどうかを調べるためにはデバッグする必要があります。

これを回避するには、StrongNamer NuGet packageを使用してください。これにより、ビルド時にすべてのアセンブリの名前が強くなり、復元が問題にならなくなります。

+0

'.nupkg'ファイルを含めて固定しました。ありがとう! – orad

関連する問題