Можно ли фильтровать файлы в подпапках в ContentFiles для проекта веб-настройки? - PullRequest
1 голос
/ 05 февраля 2012

У меня есть проект веб-настройки и веб-сайт, включенный в то же решение.В проекте установки я добавил Content files, указывающий на содержимое веб-сайта.

На этом веб-сайте есть несколько папок, которые содержат динамически генерируемые файлы (например, файлы .log, некоторые файлы изображений и т. Д.). Я не хочу, чтобы эти файлы были включены в установку.Я попытался добавить фильтр Symbols\*.png, но это не работает.Я также пробовал фильтр с именем *.png, и он исключает файлы .png в этой папке, но проблема в том, что он также исключает все статические файлы .png на веб-сайте, которые должны быть там.

Как я могу добавить фильтр, который исключает только файлы в каталоге, который я хочу?

Можно ли вызвать что-то в PreBuildEvent после удаления файлов, которое сообщит VSобновить содержимое веб-сайта?

Существуют ли другие подходы, которые могут решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 24 июня 2013

В качестве временного решения я создал PreBuildEvent, который удаляет все файлы, которые не должны быть включены в установку:

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

Это фактически удаляет файлы при запускеbuild, но это вызывает ошибку позже в сборке, потому что некоторые файлы содержимого не существуют, что, по мнению установочного содержимого, должно быть.Файлы, которые удалены, все еще упоминаются в VS как контент на веб-сайте.Если я просматриваю папки на веб-сайте, я вижу, что удаленные файлы есть в графическом интерфейсе VS (хотя файлы фактически удаляются).Мне нужно обновить проект веб-сайта, чтобы сообщить VS, что содержимое изменилось, а затем снова выполнить сборку.Тогда это работает, и моя установка содержит то, что я хочу.

0 голосов
/ 20 февраля 2012

Вы пытались отредактировать файл .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

...