Файл не найден после восстановления nuget - PullRequest
0 голосов
/ 06 ноября 2018

Я использую Visual Studio 2017 и извлекаю исходный код с сервера TFS, затем строю решение, я получил следующую ошибку:

Microsoft.Common.CurrentVersion.targets (3863,5): Ошибка MSB3113: файл "SqlServerTypes \ x64 \ SqlServerSpatial140.dll" не найден.

Затем я обнаружил, что этот dll-файл происходит из пакета nuget sqlserver.types, поскольку, как я знаю, Visual Studio восстановит пакеты nuget при создании решения.

Почему у меня все еще есть эта проблема?

Ответы [ 2 ]

0 голосов
/ 07 ноября 2018

Файл не найден после восстановления nuget

Когда вы загружаете пакет nuget Microsoft.SqlServer.Types с nuget.org и открываете его с помощью проводника пакетов nuget:

enter image description here

Вы найдете, что пакет sqlserver.types nuget не только включает .dll из .net framework, но также имеет собственные двоичные файлы. Эти файлы разработаны с x64 и x84, они не могут быть добавлены в папку lib напрямую. Таким образом, владелец пакета добавляет их в проект как контент. Однако эти файлы DLL по умолчанию игнорируются для TFS, вам нужно добавить их вручную.

Конечно, вы также можете использовать командную строку Update-Package <package_name> –reinstall для переустановки этого пакета nuget, но для этого требуется, чтобы вы выполняли эту команду каждый раз после извлечения кода с сервера TFS. Добавление этих собственных двоичных файлов в систему контроля версий уменьшит эти ненужные проблемы.

Надеюсь, это поможет.

0 голосов
/ 06 ноября 2018

Вы можете попробовать это:

Update-Package <package_name> –reinstall
...