使用Web部署项目添加到内置ExcludeFromBuild ItemGroup

时间:2009-03-31 00:42:57

标签: .net msbuild web-deployment-project

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

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

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

这确实排除了所请求的特定文件,但现在不再排除默认排除的文件。具体来说,现在我的所有svn文件都在Release文件夹&amp;还有一个Source文件夹,位于同一级别,其中包含所有源代码。

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

不完全是一个显示停止,但不理想...那么,有没有人知道如何简单地将文件添加到默认的ExcludeFromBuild组?或者是使用默认值Vs的情况。手动排除所有东西。删除默认构建后没有的文件?

3 个答案:

答案 0 :(得分:19)

对于那些来看的人来说,我认为我应该回答我自己的问题...我找不到我想要的确切解决方案,所以我只是将我需要的所有内容手动排除到ExcludeFromBuild ItemGroup(模仿)默认选项似乎做什么&amp;然后也排除我的特定文件)。我的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文件,源安全文件等以及我想首先忽略的自定义文件。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

<ItemGroup>
    <ExcludeFromBuild Include="somefile.txt;$(ExcludeFromBuild)" />
</ItemGroup>