10

我在我的解决方案中添加了一个 Web 部署项目,以创建我的 Web 应用程序的干净部署。这主要按预期工作......即构建源然后将要部署的文件复制到 /Release 文件夹(并排除源文件和我的 .svn 文件夹等内容)。

但现在我想明确排除一些其他文件(为了简单起见,我们只说一个名为 somefile.txt 的文件)。因此,我在 wdproj 文件中添加了一个项目组,如下所示:

<ItemGroup>
    <ExcludeFromBuild Include="somefile.txt" />
</ItemGroup>

这确实会按要求排除特定文件,但现在不再排除默认排除的文件。具体来说,现在我所有的 svn 文件都在 Release 文件夹中,并且在同一级别还有一个 Source 文件夹,其中包含所有源。

基本上,似乎定义 ExcludeFromBuild 项目组是覆盖一些内置默认值,而不是添加到它们。

不完全是一个表演停止者,但并不理想......那么,有谁知道如何简单地将文件添加到默认的 ExcludeFromBuild 组?还是使用默认值 Vs. 手工排除一切。在默认构建后删除您不删除的文件?

4

3 回答 3

19

好吧,对于任何前来寻找的人,我想我应该回答我自己的问题......我没有找到我正在寻找的确切解决方案,所以我只是将我需要的所有内容手动添加到 ExcludeFromBuild ItemGroup 中(以模仿默认的选项似乎可以,然后也排除了我的特定文件)。我的 ExcludeFromBuild 列表最终看起来像这样:

<ItemGroup>
    <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\somefile.txt" />
    <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\obj\**\*.*" />
    <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\.svn\**\*.*" />
    <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\.svn\**\*" />
    <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\*.csproj" />
    <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\*.scc" />
    <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\*.user" />
    <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\*.vspscc" />
    <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\*.log" />
    <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\*.svclog" />
</ItemGroup>

基本上排除了所有日志文件、用户/项目文件、svn 文件、源安全文件等以及我想首先忽略的自定义文件。

于 2009-04-02T22:14:02.000 回答
0

我不确定这是否有帮助,但该命令具有 Exclude 属性,您可以覆盖复制文件的目标并用于包含/排除您需要的内容。

于 2009-04-01T22:05:33.830 回答
0

是的,我知道这已经过时了,但你试过吗?

<ItemGroup>
    <ExcludeFromBuild Include="somefile.txt;$(ExcludeFromBuild)" />
</ItemGroup>
于 2015-09-19T02:28:54.763 回答