Подтвердить что ты не робот

MS Visual Studio: как исключить публикацию определенных папок проекта?

У меня есть определенные папки, которые я хочу сохранить в проекте, но не включать его в публикацию.

Возможно ли это?

4b9b3361

Ответ 1

Майкл абсолютно прав, редактируя файл .csproj, вы можете вручную исключить файлы/папки из публикации.

Если вы не хотите связываться с файлом .csproj, проще всего выделить файлы в проводнике решений VS. Под панелью свойств измените build to action с "content" на "none".

Таким образом, вам не нужно выгружать проект из решения, загружать .csproj и добавлять строку для каждого нового добавляемого вами файла, который не нужно публиковать, а вместо этого достигните того же с помощью 3 щелчков мыши.

(при условии, что вы установили "Только публиковать файлы, необходимые для запуска этого приложения" на вкладке публикации)

Ответ 2

Если это проект веб-сайта, вы можете исключить определенные папки и/или файлы следующим образом (см. элементы ИсключитьFoldersFromDeployment и ИсключитьFilesFromDeployment):

<?xml version="1.0" encoding="utf-8"?>
<!--
This file is used by the publish/package process of your Web project. You can customize the behavior of this process
by editing this MSBuild file. In order to learn more about this please visit http://go.microsoft.com/fwlink/?LinkID=208121. 
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
        <WebPublishMethod>FileSystem</WebPublishMethod>
        <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
        <LastUsedPlatform>Any CPU</LastUsedPlatform>
        <SiteUrlToLaunchAfterPublish />
        <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
        <ExcludeApp_Data>True</ExcludeApp_Data>
        <publishUrl>D:\YAZILIM\Adopen.2015\PreCompiledWeb</publishUrl>
        <DeleteExistingFiles>True</DeleteExistingFiles>
        <PrecompileBeforePublish>True</PrecompileBeforePublish>
        <EnableUpdateable>True</EnableUpdateable>
        <DebugSymbols>False</DebugSymbols>
        <WDPMergeOption>MergeAllOutputsToASingleAssembly</WDPMergeOption>
        <UseMerge>True</UseMerge>
        <SingleAssemblyName>AdoIntranet</SingleAssemblyName>
        <ExcludeFoldersFromDeployment>customobjects;uploads</ExcludeFoldersFromDeployment> 
        <ExcludeFilesFromDeployment>app.config</ExcludeFilesFromDeployment>
    </PropertyGroup>
</Project>

Ответ 4

Вы можете выполнить "Найти и заменить" в файле Web.cspoj, чтобы быстро удалить определенную папку из процесса публикации/развертывания

Так же,

<Content Include="Uploads/

к

<None Include="Uploads/

Ответ 5

Другой способ, который вы можете сделать, - это скрыть папки в проводнике Windows, которые не нужны для публикации (не лучшее решение, но работает, если у вас есть большой набор изображений, которые все еще должны быть в окне разработки).

Ответ 6

Как вопрос помечен ASP, нет файла .proj, с которым нужно взаимодействовать. В VS2015 вместо этого есть другой полезный файл: website.publishproj. И эта статья Asp.Net об исключении файлов и папок упоминает файл .wpp.targets.

Все эти файлы содержат элементы <ItemGroup>, которые могут иметь такие элементы, как <ExcludeFromPackageFolders>. Поскольку они кажутся документированными функциями, просто используйте их и не чувствуйте себя виноватыми за взлом или "беспорядок". Для меня исключение каталога с использованием простых инструкций этой ссылки и файла website.publishproj работало как шарм!

Ответ 7

  • Разгрузить проект,
  • Щелкните правой кнопкой мыши Edit *.csproj,
  • Добавь это:
<ItemGroup>
<Content Update="Data\CernainFolder\*.*">
<CopyToPublishDirectory>Never</CopyToPublishDirectory>
</Content>
</ItemGroup>
  • Перезагрузить проект.

Это должно работать хорошо