1

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

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

如何添加一个过滤器,只排除我想要的目录下的文件?

是否可以在删除文件后调用某些PreBuildEvent内容来告诉 VS 刷新网站内容?

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

4

2 回答 2

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

于 2012-02-20T12:52:52.317 回答
0

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

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

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

于 2013-06-24T09:19:20.667 回答