如何从 Visual Studio 2013 Web 应用程序的发布/部署中排除文件夹

问题描述 投票:0回答:4

我正在从 Visual Studio 2013 发布 Web 应用程序。我需要包含不属于项目一部分的文件夹,并排除一些文件夹(一些文件夹属于项目,一些文件夹不属于项目)。因此,我进入项目的属性并将

Items To Deploy
字段设置为
All files in this project folder
,如下所示:

然后我开始寻找一种从

All files in this project folder
中排除文件夹的方法。我找到了this页面,其中明确指出了

Visual Studio UI 不会公开所有部署设置 您可以配置。例如,您不能使用 UI 来排除 部署中的单个文件夹。但是,您可以通过以下方式执行此操作 编辑存储配置设置的文件。对于每个发布 profile中有一个.pubxml文件,您可以直接编辑。

此页面链接到另一个页面,解释如何编辑文件,但不解释如何排除特定文件夹。

我发现其他网站(包括这个)解释了如何使用 csproj 文件中的以下标记排除旧版本 Visual Studio 中的文件夹:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> 
  ... 
  <ExcludeFilesFromDeployment>File1.aspx;File2.aspx</ExcludeFilesFromDeployment> 
  <ExcludeFoldersFromDeployment>Folder1;Folder2</ExcludeFoldersFromDeployment> 
</PropertyGroup>

但 csproj 文件的 XML 元素似乎在 VS2013 中不再相关。我在某处读到(现在不记得在哪里)建议该元素已移至

[PublishProfileName].pubxml
文件,但尝试此操作失败。

我确信在 Visual Studio 2013 中有一种方法可以做到这一点,但对于我的一生,我不知道如何做。我在 Stackoverflow 以及其他论坛上找到了数十个相关问题,但没有一个解决方案在 VS2013 中对我有用。非常感谢任何帮助。

visual-studio-2013 web-deployment
4个回答
30
投票

这些元素确实已移至 Visual Studio 2012 及更高版本中的 .pubxml 文件中。 这里是 MSDN 中有关从部署中排除文件和文件夹的相关文档。

在 Visual Studio 解决方案资源管理器中的“属性”/“发布配置文件”下找到相关的 .pubxml 文件,并在列出要排除的文件或文件夹的

ExcludeFilesFromDeployment
元素下添加新元素
ExcludeFoldersFromDeployment
PropertyGroup
,以半角分隔-冒号。

我注意到,当我将这些元素输入 Visual Studio 2015 时,这些元素并未在 IntelliSense 选择中显示为选项 - 但项目已编译并且排除仍然有效。


1
投票
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
   .
   .
   .
  </PropertyGroup>
  <ItemGroup>
    <Content Update="appsettings.Development.json">
      <CopyToPublishDirectory>Never</CopyToPublishDirectory>
      <CopyToOutputDirectory>Never</CopyToOutputDirectory>
    </Content>
    <Content Update="appsettings.TestBed.json">
      <CopyToPublishDirectory>Never</CopyToPublishDirectory>
      <CopyToOutputDirectory>Never</CopyToOutputDirectory>
    </Content>
    <Content Update="wwwroot\files\**\*" CopyToPublishDirectory="Never" />
    <Content Update="wwwroot\originals\**\*" CopyToPublishDirectory="Never" />
  </ItemGroup>
</Project>

0
投票

样品, 排除文件 排除文件夹

 <ItemGroup>
    <Content Update="appsettings.json" CopyToPublishDirectory="Never" />
    <Content Update="wwwroot\**" CopyToPublishDirectory="Never" />
  </ItemGroup>

-3
投票

在您的

cpproj
项目文件中,添加那些不包含在发布过程中的文件夹和文件,如下所示:

<Content Include="Documentation\**" CopyToPublishDirectory="Never" />
© www.soinside.com 2019 - 2024. All rights reserved.