Создать пакет Nuget из. NET framework 4.0 - PullRequest
1 голос
/ 05 мая 2020

Я пытаюсь создать пакет nuget из библиотеки классов, нацеленной. NET framework 4.0

Итак,

  1. Я загружаю nuget.exe
  2. Открыть cmd console
  3. Создайте папку lib в root
  4. Создайте проект и скопируйте DLL из root/bin/Release в root/lib/net4 папку
  5. Используйте nuget spec CRM_Mailer.csproj

Структура папки:

- root
   -- lib
     -- net4
        -- CRM_Mailer.dll               
        -- Cryptography.dll  
        -- DataConnector.dll  
        -- CRM_Mailer.csproj

nuget pack CRM_Mailer.nuspec

Заполните мой CRM_Mailer.nuspe c

 <package>
     <metadata>
         <id>CRM_Mailer</id>
         <version>0.0.2</version>
         <title>Test1</title>
         <authors>testUser</authors>
         <owners>testUser</owners>
         <!-- <licenseUrl>http://LICENSE_URL_HERE_OR_DELETE_THIS_LINE</licenseUrl> -->
         <!-- <projectUrl>http://PROJECT_URL_HERE_OR_DELETE_THIS_LINE</projectUrl> -->
         <!-- <iconUrl>http://ICON_URL_HERE_OR_DELETE_THIS_LINE</iconUrl> -->
         <requireLicenseAcceptance>false</requireLicenseAcceptance>
         <description>hope it's work</description>
         <releaseNotes>Realy hope</releaseNotes>
         <copyright>Copyright 2020</copyright>
         <tags>Win32</tags>
         <references>
             <reference file="CRM_Mailer.dll" />  
             <reference file="Cryptography.dll" />      
             <reference file="DataConnector.dll" />
         </references>
     </metadata>
 </package>

Используйте nuget pack CRM_Mailer.nuspec и получите следующие предупреждения:

ПРЕДУПРЕЖДЕНИЕ: NU5100 : Сборка bin \ Release \ CRM_Mailer.dll не находится внутри папки lib и, следовательно, не будет добавлена ​​в качестве ссылки при установке пакета в проект. Переместите его в папку «lib», если на него нужно сослаться. ПРЕДУПРЕЖДЕНИЕ: NU5100: сборка bin \ Release \ Cryptography.dll не находится внутри папки lib и, следовательно, не будет добавлена ​​в качестве ссылки при установке пакета в проект. Переместите его в папку «lib», если на него нужно сослаться. ПРЕДУПРЕЖДЕНИЕ: NU5100: сборка bin \ Release \ DataConnector.dll не находится внутри папки lib и, следовательно, не будет добавлена ​​в качестве ссылки при установке пакета в проект. Переместите его в папку «lib», если на него нужно сослаться. ПРЕДУПРЕЖДЕНИЕ: NU5100: сборка obj \ Debug \ CRM_Mailer.dll не находится внутри папки lib и, следовательно, не будет добавлена ​​в качестве ссылки при установке пакета в проект. Переместите его в папку lib, если на него нужно ссылаться. ПРЕДУПРЕЖДЕНИЕ: NU5100: сборка obj \ Release \ CRM_Mailer.dll не находится внутри папки lib и, следовательно, не будет добавлена ​​в качестве ссылки при установке пакета в проект. Переместите его в папку lib, если на него нужно ссылаться.

nuget add CRM_Mailer.0.0.3.nupkg -Source C:\GIT\NugetPackages\NugetPackageCreator\Package

Пакет работает

Вопросы:

  • Почему я получаю предупреждения на шаге 7 - и как их аннулировать?
  • Почему SPE c не копирует информацию из assembly.info?

Ответы [ 2 ]

1 голос
/ 05 мая 2020

Согласно вашей структуре файлов, решение простое.

Просто удалите папки 'obj' и 'bin' перед выполнением nuget pack команды

0 голосов
/ 05 мая 2020

Сборки, загруженные через nuget, должны находиться в папке «Lib» (как сказано в предупреждении, а не в папке root). Чтобы исправить это, скопируйте сборки в подпапку «lib» и измените файл spe c так, чтобы он указывал на сборки:

<reference file="Lib\{file}">

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...