Создание пакета Nuget с Cake и упаковка только dll - PullRequest
0 голосов
/ 15 сентября 2018

Когда я создаю пакет nuget из командной строки через myPath\nuget.exe pack -Prop Configuration=Release, мой пакет nuget содержит DLL и ничего больше; как я этого хочу.

Когда я создаю пакет Nuget с Cake, включается каждый файл в папке проекта.
Как я могу получить Cake Nuget, чтобы включить только мою DLL? вести себя как командная строка.


В файле build.cake У меня

Task("Package")
    .Does(() =>{
        NuGetPack("../CompulsoryCow/CompulsoryCow.nuspec", new NuGetPackSettings{
            Id = "CompulsoryCow",
            Authors = new []{ "LosManos" }, 
            Version = "1.0.0", 
            Description = "TBD", 
            Verbosity = NuGetVerbosity.Detailed,
        }
    );
});

Мой CompulsoryCow.nuspec файл, который работает с nuget.exe pack.

<?xml version="1.0"?>
<package >
  <metadata>
    <id>$id$</id>
    <version>$version$</version>
    <title>$title$</title>
    <authors>$author$</authors>
    <owners>$author$</owners>
    <licenseUrl>https://raw.githubusercontent.com/LosManos/CompulsoryCow/master/License.txt</licenseUrl>
    <projectUrl>https://github.com/LosManos/CompulsoryCow</projectUrl>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>$description$</description>
    <summary>...</summary>
    <releaseNotes>...</releaseNotes>
    <copyright>LGPLv3+NoEvil.</copyright>
    <repository type="git" url="https://github.com/LosManos/CompulsoryCow" />
  </metadata>
</package>

Обновление:

Я добавил BasePath в NuGetPackSettings, чтобы указать на папку ..bin/release, где у меня есть DLL и PDB. Он упаковывает еще несколько файлов, но я полагаю, что он ведет себя хорошо.

Выход:

Added file '[Content_Types].xml'.
Added file '_rels/.rels'.
Added file 'CompulsoryCow.dll'.
Added file 'CompulsoryCow.nuspec'.
Added file 'CompulsoryCow.pdb'.
Added file 'package/services/metadata/core-properties/3a1990a4516a46118d81f4bd5961a767.psmdcp'.

Обновление:

Я переключился на использование CompulsoryCow.csproj, а затем он ведет себя как при вызове из командной строки. DLL упакована, но не PDB.
На сопроводительной записке он берет идентификатор, авторов, версию и описание из файла nugetspec; что-то, что он не делал, когда я использовал CompulsoryCow.nuspec.

Added file '[Content_Types].xml'.
Added file '_rels/.rels'.
Added file 'CompulsoryCow.nuspec'.
Added file 'lib/net40-client/CompulsoryCow.dll'.
Added file 'package/services/metadata/core-properties/c4d7ab4804fb417e8e5f9fa4d0062c74.psmdcp'.
...