MS Visual Studio:如何从发布中排除某些项目文件夹?

时间:2011-05-24 01:20:46

标签: c# asp.net .net visual-studio publish

我有一些文件夹要保留在项目中,但不要将其包含在发布中。

这可能吗?

6 个答案:

答案 0 :(得分:27)

Michael完全正确,通过编辑.csproj文件,您可以手动排除文件/文件夹的发布。

如果您不想弄乱.csproj文件,一种更简单的方法是突出显示VS解决方案资源管理器中的文件。在属性面板下,将构建更改为“内容”为“无”。

这样您就不必从解决方案中卸载项目,加载.csproj并为您添加的每个新文件添加一行不需要发布的内容,而是通过3次鼠标单击实现相同的操作

(假设您已在发布标签下设置了“仅发布运行此应用程序所需的文件”)

答案 1 :(得分:18)

如果是网站项目,您可以按如下方式排除某些文件夹和/或文件(参见元素 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>

答案 2 :(得分:5)

你可以做一个'查找&amp;替换'Web.cspoj文件中的'以快速消除发布/部署过程中的特定文件夹

像这样;

<Content Include="Uploads/

<None Include="Uploads/

答案 3 :(得分:4)

你可以做的另一种方法是你可以隐藏不需要发布的Windows资源管理器中的文件夹(不是最好的解决方案,但是如果你有大量的图像仍然需要在开发框中,则可以工作)。

答案 4 :(得分:1)

  • 卸载项目,
  • 右键单击“编辑* .csproj”,
  • 添加此内容:
<ItemGroup>
<Content Update="Data\CernainFolder\*.*">
<CopyToPublishDirectory>Never</CopyToPublishDirectory>
</Content>
</ItemGroup>
  • 重新加载项目。

这应该很好用

答案 5 :(得分:0)

由于问题是用ASP标记的,因此没有.proj文件可供使用。对于VS2015,还有另一个有用的文件:website.publishprojthis Asp.Net article on excluding files and folders提及.wpp.targets文件。

所有这些文件都包含<ItemGroup>个元素,这些元素可能包含<ExcludeFromPackageFolders>等元素。由于这些似乎是有记录的功能,只需使用它们,不要因为黑客攻击或“弄乱”而感到内疚。对我来说,使用该链接的简单指令排除目录,website.publishproj文件就像魅力一样!