我有一个网页设置项目和一个包含在同一个解决方案中的网站。
在安装项目中,我添加了Content files
指向网站内容。
在这个网站上有一些文件夹包含动态生成的文件(即.log文件,一些图像文件等)。我不希望这些文件包含在设置中。我尝试添加过滤器Symbols\*.png
,但这不起作用。我还尝试了一个名为*.png
的过滤器,这排除了该文件夹中的.png文件,但问题是它还排除了网站中必须存在的所有静态.png文件。
如何添加仅排除我想要的目录下的文件的过滤器?
是否可以在删除文件后调用PreBuildEvent
中的内容,告诉VS刷新网站内容?
还有其他办法可以解决这个问题吗?
答案 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内容已更改,然后再次进行构建。然后它工作,我的设置包含我想要的。