Я знаю, что этот вопрос упоминает Visual Studio 2010
, но я попал сюда в поисках той же проблемы ...
Я использую Visual Studio 2012
и нашел хороший / элегантный способ преодолеть эту досадную ситуацию. Я думаю, что это также будет работать в VS 2010
и лучше, чем добавление пустых пустых файлов в пустые папки.
Когда вы создаете профиль публикации с помощью VS 2012
, он создает файл MyPublishProfile.pubxml
в папке Properties\PublishProfiles
(My Project\PublishProfiles
для VB). Это MSBuild
файлы, и их можно редактировать для настройки процесса публикации. В нашем случае мы можем внедрить цель в процесс публикации, прежде чем публикация действительно произойдет так:
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<AfterAddIisSettingAndFileContentsToSourceManifest>CreateEmptyFolders
</AfterAddIisSettingAndFileContentsToSourceManifest>
</PropertyGroup>
<Target Name="CreateEmptyFolders">
<Message Text="Adding empty folder to hold Files" />
<MakeDir Directories="$(_MSDeployDirPath_FullPath)\Files\MyEmptyFolder"/>
</Target>
</Project>
Свойство AfterAddIisSettingAndFileContentsToSourceManifest
содержит имена целей, которые будут вызваны после подготовки содержимого для пакета развертывания. Это идеальное время для добавления дополнительных файлов или папок в пакет.
Код и текст, смешанные с:
Как выполнить сценарий PowerShell только перед веб-развертыванием задачи публикации в VS 2012?
Web Deploy: настройка пакета развертывания