驚くべきことに、Visual Studio 2012 の答えはここにはありません。
緑のチェックマークが付いている答えは答えではありません。
最高の「上向き」の回答は、2010 年の記事を参照しており、現在は正しくない csproj プロジェクト ファイルを編集する必要があると述べています。ExcludeFoldersFromDeployment XML 要素を Visual Studio 2012 csproj ファイルに追加しましたが、何もしませんでした。要素は無効と見なされました。これは、ExcludeFoldersFromDeployment が .pubxml ファイルに移動されたためです。
Web アプリケーションと Web サイトの場合は、.pubxml ファイルを編集します。
私の答えに従うか、後で見つけたこのガイドを試すことができます:
http://www.leniel.net/2014/05/using-msdeploy-publish-profile-pubxml-to-create-an-empty-folder-structure- on-iis-and-skip-deleting-it-with-msdeployskiprules.html#sthash.MSsQD8U1.dpbs
はい、これは Web サイト プロジェクトだけでなく、Web サイトでも実行できます。Visual Studio Web サイト (Web サイト プロジェクトではない) でこのとらえどころのない除外機能を探してインターネットで長い時間を費やしましたが、以前はそれは不可能であると結論付けていましたが、次のように見えます。
[mypublishwebsitename].pubxml ファイル (Web アプリケーション プロジェクトの場合は ~/Properties/PublishProfiles、Web サイトの場合は ~/App_Data/PublishProfiles にあります) に、以下を追加するだけです。
<ExcludeFilesFromDeployment>File1.aspx;Folder2\File2.aspx</ExcludeFilesFromDeployment>
<ExcludeFoldersFromDeployment>Folder1;Folder2\Folder2a</ExcludeFoldersFromDeployment>
<PropertyGroup>.pubxml ファイルのメイン要素の子として。リリースやデバッグなど、特定のビルド タイプをキー設定する場合を除き、新しい要素を追加する必要はありません。
ちょっと待って!!!
パブリッシュ構成で次の設定を使用して、宛先/ターゲット サーバーからファイルを削除する場合:

次に、Web パブリッシュ プロセスは、ソース/ターゲット サーバー上で除外されたものをすべて削除し<ExcludeFoldersFromDeployment>ます<ExcludeFilesFromDeployment>。
MsDeploy スキップ ルールで救出:
まず、Web Publish は MSBuild 以外のもの (Task IO などと呼ばれる) を使用して発行しますが、バグがあり、スキップ ルールを認識しないため、.pubxml に次のように追加する必要があります。
<PropertyGroup>
<WebPublishMethod>MSDeploy</WebPublishMethod>
</PropertyGroup>
<WebPublishMethod>独自の.pubxmlに要素<PropertyGroup>を 1 つだけ含めることができると思われるかもしれませんが、独自の要素<PropertyGroup>に移動するまでスキップ ルールは呼び出されませんでした。はい、クレイジーですが、サーバー上のフォルダー/ファイルを除外し、削除しないようにするために、Web Publish でこれをすべて実行する必要があるという事実はクレイジーです。<WebPublishMethod><PropertyGroup>
.pubxml 内の実際の SkipRules、ExcludeFolders、および ExcludeFiles 宣言:
<ExcludeFoldersFromDeployment>Config</ExcludeFoldersFromDeployment>
<ExcludeFoldersFromDeployment>Photos</ExcludeFoldersFromDeployment>
<ExcludeFoldersFromDeployment>Temp</ExcludeFoldersFromDeployment>
<ExcludeFilesFromDeployment>Web.config</ExcludeFilesFromDeployment>
<AfterAddIisSettingAndFileContentsToSourceManifest>AddCustomSkipRules</AfterAddIisSettingAndFileContentsToSourceManifest>
そして今、スキップルール(<Target>はあなたの.pubxmlの子です<Project>):(すべてのアクションをスキップするために空のままにしておくことができるかもしれませ<SkipAction>んが、私はそれをテストしていないので確信が持てません.
<Target Name="AddCustomSkipRules">
<Message Text="Adding Custom Skip Rules" />
<ItemGroup>
<MsDeploySkipRules Include="SkipConfigFolder">
<SkipAction>Delete</SkipAction>
<ObjectName>dirPath</ObjectName>
<AbsolutePath>$(_DestinationContentPath)\\Config</AbsolutePath>
<XPath>
</XPath>
</MsDeploySkipRules>
<MsDeploySkipRules Include="SkipPhotosFolder">
<SkipAction>Delete</SkipAction>
<ObjectName>dirPath</ObjectName>
<AbsolutePath>$(_DestinationContentPath)\\Photos</AbsolutePath>
<XPath>
</XPath>
</MsDeploySkipRules>
<MsDeploySkipRules Include="SkipWebConfig">
<SkipAction>Delete</SkipAction>
<ObjectName>filePath</ObjectName>
<AbsolutePath>$(_DestinationContentPath)\\Web\.config</AbsolutePath>
<XPath>
</XPath>
</MsDeploySkipRules>
<MsDeploySkipRules Include="SkipWebConfig">
<SkipAction>Delete</SkipAction>
<ObjectName>dirPath</ObjectName>
<AbsolutePath>$(_DestinationContentPath)\\Temp</AbsolutePath>
<XPath>
</XPath>
</MsDeploySkipRules>
</ItemGroup>
</Target>
.また、 in a filePath Skip ルールをバックスラッシュでエスケープすることを忘れないでください。