Как исключить папку из пакета nuget

Я использую файл Octopack / Nuspec для создания своего пакета nuget.

Я хотел бы исключить определенные папки, которые существуют в проекте. например файл "obj". Я пытался заставить работать тег exclude, но безуспешно. Файл nuget создается, но папка все еще существует.

К сожалению, все примеры в сети относятся к конкретным типам файлов, а не к папкам.

<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
  <metadata>
    <id>Foo</id>
    <title>Foo</title>
    <version>$version$</version>
    <authors>NA</authors>
    <owners>NA</owners>
    <licenseUrl>http://Foo</licenseUrl>
    <projectUrl>http://Foo</projectUrl>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Foo</description>
    <releaseNotes>NA</releaseNotes>
  </metadata>
  <files>
    <file src="obj\**\*.*" exclude="*.*" />
  </files>
</package>

person Kye    schedule 22.01.2013    source источник
comment
Можете ли вы описать нам, какие части вы хотите включить в пакет?   -  person John Hoerr    schedule 22.01.2013


Ответы (3)


Мне нужно было создать WebApplication, но развернуть его как стандартный веб-сайт ASP.NET с использованием атрибутов CodeFile.

Это было в основном для обновления страницы на стандартном сайте входа в ADFS.

<files>
  <file src="**" exclude="**\*.dll;**\*.designer.cs;**\*.csproj;**\*.pdb;**\*.user;**\*.vspscc;bin\*.cs;bin\*.aspx;bin\*.config;bin\*.asax;bin\*.pubxml" />
</files>
person Kye    schedule 23.01.2013
comment
Требуется ли для этого использовать NuGet? Интересно, а Пакет веб-развертывания может немного лучше подходить для того, что вы пытаетесь выполнить. - person John Hoerr; 23.01.2013
comment
Ага. Нам нужно было использовать развертывание Octopus, поэтому nuget был обязательным требованием. - person Kye; 23.01.2013

Чтобы напрямую ответить на вопрос плаката, если вы хотите исключить только папку obj из пакета Nuget, используйте следующее в своем nuspec xml

<files>
    <file src="*\**" target="\" exclude="obj\**\*.*"/>
</files>
person KShan    schedule 24.05.2017
comment
У этого было много побочных эффектов. - person Tomas Hesse; 05.05.2021

В зависимости от создаваемого проекта ничего исключать не нужно.

Если вы создаете приложение Windows Service / Console, OctoPack должен упаковать только ваш bin\release каталог.

Если вы создаете веб-приложение, вы должны использовать команду «опубликовать», чтобы MSBuild отправил двоичные файлы и файлы содержимого во временную папку, и OctoPack упакует это. Таким образом, ваши obj папки и файлы C # не будут упакованы.

Информацию о том, как это сделать, см. В разделе о публикации веб-приложений по адресу:

http://octopusdeploy.com/documentation/packaging/octopack

person Paul Stovell    schedule 23.01.2013
comment
вы можете обновить этот ответ? Я не вижу раздела публикации веб-приложений на связанной странице. Моя конкретная проблема заключается в том, что папка bin \ Roslyn включается в nupkg. Я попытался использовать профиль публикации и запустить msbuild вместо csproj, но это не сработало: & $ msbuildExe .. \ trunk \ WebUI \ WebUI.csproj / p: DeployOnBuild = true / p: PublishProfile = local / p: RunOctoPack = правда - person b_levitt; 08.06.2016
comment
Это включаемые файлы, такие как EntityFramework.dll, которые являются зависимостями от отдельных пакетов NuGet, а НЕ файлы, которые должны быть включены в мой файл nupkg. Как их исключить? - person Triynko; 29.08.2017
comment
Вопрос не в советах. Это было явно для исключения папки из пакета nuget. - person Dean Martin; 18.10.2018