Потратил на это несколько часов, и вот что сработало для меня, используя текущую последнюю версию пакета 1.3.0.100 и действующую лицензию DB2 11.1, которую я уже установил.Я подозреваю, что этот подход будет работать и на 1.1 и 1.2, при условии, что у вас уже есть лицензия.
Добавьте следующий файл в файл проекта, изменив путь для DB2License
, как необходимо для локальной установки:
<ItemGroup>
<DB2License Include="C:\ProgramData\IBM\DB2\{FOLDER NAME THAT VARIES BY INSTALL}\license\**\*.*"/>
</ItemGroup>
<Target Name="CopyFiles" AfterTargets="AfterBuild">
<Copy SourceFiles="@(DB2License)" DestinationFolder="$(OutDir)\clidriver\license\" />
</Target>
Важной частью является то, что $(OutDir)\clidriver\license\
имеет все файлы, необходимые для представления действительной лицензии DB2 11.1+ до запуска вашего приложения.Для меня было 3 файла.Для сборки и выпуска сервера может потребоваться немного более сложная настройка, чтобы получить правильные файлы в ожидаемом месте.
Вот еще кое-что, что я пробовал, но мне это не помогло, но можетпомощь для других:
- Некоторые статьи на сайте IBM предлагают добавить
%userprofile%\.nuget\packages\IBM.Data.DB2.Core\<version>\build\clidriver\bin
или %userprofile%\.nuget\packages\IBM.Data.DB2.Core\<version>\build\clidriver\license
в переменную среды PATH.Это кажется совершенно ненужным. - В других статьях или сообщениях на форуме предлагается скопировать файлы лицензий в папку лицензий пакета nuget
%userprofile%\.nuget\packages\IBM.Data.DB2.Core\<version>\build\clidriver\license
.Это сработало, но не идеально, поскольку его необходимо выполнить на каждом компьютере после восстановления пакета nuget , а затем выполнить его заново, если позже вы измените версии пакета nuget.И, конечно же, ни в одном из мест, где упоминается «эй, просто скопируйте лицензию по этому пути», не указан каталог по умолчанию, содержащий вашу существующую лицензию: C:\ProgramData\IBM\DB2\{FOLDER NAME THAT VARIES BY INSTALL}\license\
.