Как исключить папку из пакета 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>
Ответы
Ответ 1
В зависимости от проекта, который вы строите, вам не нужно ничего исключать.
Если вы создаете приложение Windows/Консоль, OctoPack должен упаковать только каталог bin\release
.
Если вы создаете веб-приложение, вы должны использовать команду "publish", чтобы MSBuild отправил двоичные файлы и файлы содержимого во временную папку, а OctoPack упакует это. Таким образом, ваши папки obj
и файлы С# не будут упакованы.
Информацию о том, как это сделать, см. в разделе "Публикация веб-приложений":
http://octopusdeploy.com/documentation/packaging/octopack
Ответ 2
Мне нужно было создать WebApplicatoin, но развернуть его как стандартный веб-сайт 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>
Ответ 3
Чтобы ответить на вопрос о плакатах, если вы хотите исключить только папку obj из пакета Nuget, используйте следующее в вашем nuspec xml
<files>
<file src="*\**" target="\" exclude="obj\**\*.*"/>
</files>