2016-03-10 1 views
-1

Я новичок в мерзавец, и я использую его с TFS и Visual Studio 2013.Как включить NuGet пакеты папку «сборки» при использовании мерзавца с TFS

Я хочу скачано NuGet пакеты должны быть включены в систему управления версиями Git ,

В качестве примера, я добавил System.Data.SQLite.Core.1.0.99.0 пакет, который включает в себя файлы, такие как:

lib\net20\System.Data.SQLite.dll 
lib\net35\System.Data.SQLite.dll 
... 
build\net20\x64\SQLite.Interop.dll 
build\net20\x86\SQLite.Interop.dll 

Файлы под packages\...\lib включены в систему управления версиями, который что я хочу.

Но файлы под № packages\...\build являются не прилагаются.

Как я могу это достичь? Файл .gitignore обеспечивает Visual Studio 2013 включает в себя следующие строки:

# Build results 

... 
[Rr]elease/ 
x64/ 
build/ 
... 

# Enable "build/" folder in the NuGet Packages folder since NuGet packages use it for MSBuild targets 
!packages/*/build/ 

, который, если я прочитал это право является

  • исключая ряд выходных папок, включая «сборки» и «x64 ",
  • , затем явным образом включаю папку build, когда ее под« пакетами »(папка пакетов NuGet).

Я попытался редактирования .gitignore в ряде направлений, в том числе добавления:

!**/packages/*/build/ 
!**/packages/*/build/*/x64 

, но я ничего не пробовал работу. Любые советы оценены.

UPDATE

Я нашел то, что работает.

Фактически, мой репозиторий git содержит несколько решений VS в подпапках. Так на самом деле путь к моей папке пакетов:

root/folder1/folder2/packages 

где «корень» это корневой каталог моего репозитория GIT, каталог, который содержит .gitignore.

я могу заставить его работать, добавив следующие строки:

!*/*/packages/*/build/ 
!*/*/packages/*/build/*/x64 

Это обходной путь, но то, что я действительно хочу, чтобы иметь возможность включить packages/*/build и packages/*/build/*/x64 везде, где они появляются в иерархии папок. Префикс «**» не работает.

Для Репрографического это:

  • Создать папку в репозитории
  • Создать решение в Visual Studio 2013 в этом вложенной
  • Использование NuGet добавить пакет «System.Data.SQLite Ядро (x86/x64) "к решению.
+1

Вы не должны помещать двоичные файлы в репозиторий Git - Git не эффективно выполняет двоичные файлы версий, и это приводит к значительному раздуванию и может вызвать серьезные проблемы с производительностью репозитория с течением времени при клонировании и проверке ветвей. Если вам по какой-то причине нужно поместить двоичные файлы в Git, используйте Git LFS. –

+0

@ DanielMann благодарит за совет, но я рассмотрел компромиссы и все еще хочу сохранить двоичные файлы (небольшое количество двоичных файлов, которые являются частью пакета NuGet и никогда не изменятся). Я не считаю, что наш встроенный сервер TFS Git поддерживает LFS. – Joe

+0

Было бы неплохо, если бы downvoter объяснил, что я могу сделать, чтобы улучшить этот вопрос. – Joe

ответ

0

Чтобы включить все файлы в пакетах папку добавить следующее:

!packages/* 
+0

Я пробовал это, и он не работает. То, что работало, заключалось в том, чтобы временно прокомментировать две строки: «x64 /» и «build /». Затем файлы отображаются в VS2013 как файлы без следа, и я могу проверить их и направить их на сервер. Впоследствии я отменю изменение на .gitignore. Это, очевидно, не удовлетворительное обходное решение. – Joe

+0

Я пропустил этот сценарий на своей локальной машине и обнаружил, что мне нужно добавить «! Packages/*» для git, чтобы включить все файлы в пакеты, включая папку «packages/build». – chief7

+0

добавление «! Packages/*» тоже не работает для меня. – Joe

0

Удалить файл «мс-persist.xml» в «.git» папку вашего проекта, а затем повторите попытку.

+0

Я пробовал это, и это не имело значения. – Joe

+0

@Joe Можете ли вы запустить команду git config -list -global, чтобы проверить, есть ли у вас глобальный файл gitignore? –

+0

Результатом команды были значения для user.name и user.email - ничего о глобальном файле gitignore – Joe