2016-05-13 4 views
2

Узел входа для нашего приложения подписан с ключом с сильным именем, поэтому .NET требует, чтобы все ссылочные сборки также подписывались. Для тех пакетов, которые публикуют неподписанные сборки, наше обходное решение заключалось в том, чтобы их вручную подписать с помощью ildasm/ilasm с объяснением процесса here и проверить в сборке с сильным именем в git-репозиторий.NuGet восстановление перезаписываемых подписанных DLL

На сборке мы сделали git pull, чтобы получить подписанные DLL, а затем .nuget\NuGet.exe restore App.sln, чтобы восстановить остальные пакеты. Восстановление NuGet не перезаписывало подписанные/зарегистрированные файлы сборки под пакетами, поэтому мы могли бы построить решение отлично.

Только недавно я заметил, что это больше не работает, и только для одной из подписанных DLL nuget restore перезаписывает его оригинальной сборкой без знака, которая поставляется вместе с пакетом. Я не могу понять, почему сейчас это работает по-другому и почему это происходит только для одного из пакетов.

  • Как NuGet restore решить, когда перезаписать существующую DLL для пакета и когда его пропустить?
  • Есть ли лучший способ решить это сильное требование именования при использовании неподписанных пакетов?

Версия NuGet.exe - 3.4.3.

Спасибо!

ответ

2

Глядя на новейшие NuGet source, мне кажется, что есть начальная проверка на отсутствие отсутствующих файлов .nupkg в каталоге пакетов, я предполагаю, что вы не используете файл project.json, а затем пытается восстанавливать только те пакеты NuGet, где он не может найти файл .nupkg. Однако это только я читаю код, и в идеале мне нужно будет его отладить, чтобы посмотреть, что, если это так, работает.

Чтобы обойти это, вы можете взглянуть на использование StrongNamer NuGet package, которое решительно назвало бы все сборки во время сборки, поэтому восстановление больше не будет проблемой.

+0

В том числе файл '.nupkg' исправил его. Благодаря! – orad