是否可以过滤ContentFiles中子文件夹中的文件以进行Web设置项目?

时间:2012-02-05 11:05:27

标签: visual-studio visual-studio-2010 web-setup-project

我有一个网页设置项目和一个包含在同一个解决方案中的网站。 在安装项目中,我添加了Content files指向网站内容。

在这个网站上有一些文件夹包含动态生成的文件(即.log文件,一些图像文件等)。我不希望这些文件包含在设置中。我尝试添加过滤器Symbols\*.png,但这不起作用。我还尝试了一个名为*.png的过滤器,这排除了该文件夹中的.png文件,但问题是它还排除了网站中必须存在的所有静态.png文件。

如何添加仅排除我想要的目录下的文件的过滤器?

是否可以在删除文件后调用PreBuildEvent中的内容,告诉VS刷新网站内容?

还有其他办法可以解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

您是否尝试使用记事本编辑.csproj文件并添加以下内容:

<ItemGroup>
  <!-- This will exclude the .png files from the Symbols folder -->    
  <ExcludeFromPackageFiles Include="$(ProjectDir)..\..\MyWebSite\Symbols\*.png" />   
</ItemGroup>

其中ItemGroup位于以下行之后:

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />

您可以在以下文章中找到更多信息:http://sedodream.com/2010/05/01/WebDeploymentToolMSDeployBuildPackageIncludingExtraFilesOrExcludingSpecificFiles.aspx

答案 1 :(得分:0)

作为解决方法,我创建了一个PreBuildEvent,删除了不应包含在设置中的所有文件:

del /Q $(ProjectDir)..\..\MyWebSite\Symbols\*.png

这实际上是在我开始构建时删除文件,但是在构建的后期会导致错误,因为某些内容文件不存在,安装内容认为应该存在。已删除的文件仍在VS中作为网站中的内容引用。如果我浏览网站中的文件夹,我会看到VS GUI中存在已删除的文件(尽管文件实际上已删除)。我必须刷新网站项目,告诉VS内容已更改,然后再次进行构建。然后它工作,我的设置包含我想要的。