2012-02-05 52 views
1

我有一个网站设置项目和一个网站包含在同一溶剂。 在安装项目中,我添加了指向网站内容的Content files是否可以对Web设置项目的ContentFiles中的子文件夹中的文件进行过滤?

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

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

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

有没有其他方法可以解决这个问题?

+0

相关的东西:http://stackoverflow.com/questions/1189256/how-can-i-exclude-a-folder-from-a-net-installer-for-a-website – alexsuslin 2012-02-20 14:53:32

回答

0

作为解决方法,我创建了一个PreBuildEvent删除所有

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

这实际上删除文件时,我开始构建,但后来则导致错误出现在构建,因为有些内容文件不存在,该设置内容认为:不应该包含在安装文件应该在那里。被删除的文件在VS中仍被引用为网站中的内容。如果我浏览网站中的文件夹,我会发现删除的文件存在于VS GUI中(尽管文件实际上被删除了)。我必须对网站项目进行刷新,告诉VS内容已经更改,然后再次进行构建。然后它可以工作,我的设置包含我想要的。

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

+0

我没有一个.csproj文件,因为这是一个包含所有内容的网站。 – awe 2012-02-20 14:02:56

+0

Web部署项目将为您工作而不是Web安装项目? – alexsuslin 2012-02-20 14:13:47

+0

或在构建后事件中执行脚本 – alexsuslin 2012-02-20 14:41:51

相关问题