У меня есть определенные папки, которые я хочу сохранить в проекте, но не включать его в публикацию.
Возможно ли это?
У меня есть определенные папки, которые я хочу сохранить в проекте, но не включать его в публикацию.
Возможно ли это?
Майкл абсолютно прав, редактируя файл .csproj, вы можете вручную исключить файлы/папки из публикации.
Если вы не хотите связываться с файлом .csproj, проще всего выделить файлы в проводнике решений VS. Под панелью свойств измените build to action с "content" на "none".
Таким образом, вам не нужно выгружать проект из решения, загружать .csproj и добавлять строку для каждого нового добавляемого вами файла, который не нужно публиковать, а вместо этого достигните того же с помощью 3 щелчков мыши.
(при условии, что вы установили "Только публиковать файлы, необходимые для запуска этого приложения" на вкладке публикации)
Если это проект веб-сайта, вы можете исключить определенные папки и/или файлы следующим образом (см. элементы Исключить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>
Это кажется возможным. Пожалуйста, ознакомьтесь с Развертывание Web: исключение файлов и папок через файл проекта веб-приложений.
Вы можете выполнить "Найти и заменить" в файле Web.cspoj, чтобы быстро удалить определенную папку из процесса публикации/развертывания
Так же,
<Content Include="Uploads/
к
<None Include="Uploads/
Другой способ, который вы можете сделать, - это скрыть папки в проводнике Windows, которые не нужны для публикации (не лучшее решение, но работает, если у вас есть большой набор изображений, которые все еще должны быть в окне разработки).
Как вопрос помечен ASP, нет файла .proj
, с которым нужно взаимодействовать. В VS2015 вместо этого есть другой полезный файл: website.publishproj
. И эта статья Asp.Net об исключении файлов и папок упоминает файл .wpp.targets
.
Все эти файлы содержат элементы <ItemGroup>
, которые могут иметь такие элементы, как <ExcludeFromPackageFolders>
. Поскольку они кажутся документированными функциями, просто используйте их и не чувствуйте себя виноватыми за взлом или "беспорядок". Для меня исключение каталога с использованием простых инструкций этой ссылки и файла website.publishproj
работало как шарм!
<ItemGroup> <Content Update="Data\CernainFolder\*.*"> <CopyToPublishDirectory>Never</CopyToPublishDirectory> </Content> </ItemGroup>
Это должно работать хорошо