Я вытягиваю свои волосы над этой проблемой MSBuild.
Мы используем TeamCity для создания решения с двумя веб-сайтами MVC. Как часть сборки мы развертываем в папку на сервере сборки. IIS указывает на эту папку, чтобы обеспечить сборку интеграции, видимую для управления.
Здесь код из файла MSBuild, который использует MSDeploy для публикации пакета, но не как zip файл.
<Target Name="Deploy">
<MSBuild
Projects="$(SolutionFile)"
Properties="Platform=$(Platform);Configuration=$(Configuration);
DeployOnBuild=true;
DeployTarget=Package;
PackageLocation=$(PackageLocation);
PackageAsSingleFile=False;
AutoParameterizationWebConfigConnectionStrings=False" />
</Target>
Проблема заключается в том, что мы получаем невероятно глубокую структуру папок. Вот пример...
C:\DEPLOY\Archive\Content\C_C\Users\Edmond\Documents\Visual Studio 2008\CreatioGreen\Creatio\Code\core\trunk\Website\Website\obj\Release\Package\PackageTmp [опубликованные файлы]
Я действительно хочу развернуть в предсказуемые папки, например...
C:\build\website [опубликованные файлы] C:\build\mobilewebsite [опубликованные файлы]
Это фон. Вот конкретные вопросы.
-
Мы делаем ошибку, пытаясь использовать MSDeploy для публикации в локальной файловой системе? Мы в основном нуждаемся в эквиваленте функции VS2010 "публикация" с конфигурационными преобразованиями. Мы не пытаемся развернуть удаленные экземпляры IIS или что-то еще.
-
Есть ли способ сделать это, но указать папки публикации?
-
Я пытаюсь использовать задачу MSBuild Copy для копирования файлов в более разумные папки, но я не могу решить, как использовать подстановочные знаки для указания папок, которые нам нужно взять, - это должно было бы быть чем-то вроде...
C:.\FolderPackageEndsUpIn [ANYFOLDERS]\Сайт [ANYFOLDERS]\PackageTmp **
Help!