Nuget dll пропал после выписки из Git
У меня есть решение C#, содержащее разные проекты. В этих проектах у меня есть несколько обычных пакетов nuget, таких как Newtonsoft.Json, EntityFramework и т. Д. Но когда я извлекаю свой источник на другом компьютере и собираю его, он не будет копировать Dlls
Я поместил всю папку с решениями в git, и я могу видеть папку пакета и его содержимое в Bitbucket. Что я сделал не так?
PS: я знаю, что могу запустить ниже, чтобы восстановить свои пакеты, но это большая боль. PSS: Я искал и видел это и это. Я ищу способ предотвратить это снова
nuget install packages.config
1 ответ
Идиоматический способ использования NuGet (в отличие, например, от npm, где обычно происходит коммит node_packages
) это совершать только ваши packages.config
, Visual Studio обнаружит отсутствующие пакеты в packages/
папку и восстановить их при сборке, и nuget restore
в командной строке сделаем то же самое.
Причиной этого является то, что двоичные файлы больше, чем текстовые файлы, и их невозможно изменить (т. Е. Сохранить дельту невозможно). Я не уверен, что git даже работает так, как svn, но авторы nuget пишут не только для тех, кто использует git.
Если вы беспокоитесь о пропаже пакетов, у меня есть два момента:
- Nuget.org достаточно осторожен, так как это невозможно. Они настроили так, что пакеты могут быть удалены только программно, что означает, что восстановление может видеть эти версии, в то время как
nuget install
не буду. - Многие люди используют собственный внутренний сервер пакетов (например, Klondike), который действует как прокси для nuget.org. Это также полезно, если вы хотите упаковать внутренние библиотеки и распространять их в своих проектах с помощью nuget, не публикуя их в интернете.