web-dev-qa-db-ja.com

MS Visual Studio:特定のプロジェクトフォルダーを公開から除外する方法

プロジェクトには保持したいが、公開には含めない特定のフォルダーがあります。

それは可能ですか?

49
meetpd

Michael は完全に正しい。csprojファイルを編集することにより、ファイル/フォルダーを手動で公開対象から除外できます。

.csprojファイルを使いたくない場合の簡単な方法の1つは、VSソリューションエクスプローラー内でファイルを強調表示することです。プロパティパネルで、ビルドからアクションを「コンテンツ」から「なし」に変更します。

この方法では、ソリューションからプロジェクトをアンロードする必要はありません。

(公開タブで[このアプリケーションの実行に必要なファイルのみを公開する]を設定したと仮定します)

28
jbokkers

Webサイトプロジェクトの場合、次のように特定のフォルダーやファイルを除外できます(要素を参照してくださいExcludeFoldersFromDeploymentおよびExcludeFilesFromDeployment):

<?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>
19
HGMamaci

Web.cspojファイルで「検索と置換」を実行して、特定のフォルダーをpublish/deploymentプロセスからすばやく削除できます。

そのようです;

<Content Include="Uploads/

<None Include="Uploads/
7
Stacker-flow

別の方法としては、Windows Explorerで公開する必要のないフォルダーを非表示にすることができます(最適なソリューションではありませんが、開発ボックスに必要な画像の大規模なセットがある場合は機能します)。

4
DSharper
  • プロジェクトのアンロード、
  • [* .csprojを編集]を右クリックし、
  • これを追加:
<ItemGroup>
<Content Update="Data\CernainFolder\*.*">
<CopyToPublishDirectory>Never</CopyToPublishDirectory>
</Content>
</ItemGroup>
  • プロジェクトをリロードします。

これはうまく機能するはずです

1
Zilpio

質問にはASPのタグが付けられているため、混乱する.projファイルはありません。 VS2015では、代わりに別の便利なファイルがあります:website.publishprojファイルとフォルダの除外に関するこのAsp.Netの記事.wpp.targetsファイルについて言及しています。

これらのファイルにはすべて<ItemGroup>要素が含まれており、<ExcludeFromPackageFolders>などの要素が含まれている場合があります。これらは文書化された機能のように見えるので、それらを使用するだけで、ハッキングや「いじり」に対して罪悪感を抱かないでください。私にとっては、そのリンクの簡単な指示とwebsite.publishprojファイルを使用してディレクトリを除外することは魅力的でした!

0
Roland