Я дергаюсь за эту проблему 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 \ Код \ core \ trunk \ Website \ Website \ obj \ Release \ Package \ PackageTmp [опубликованные файлы]
Я действительно хочу развернуть в предсказуемые папки, такие как ...
C: \ build \ website [опубликованные файлы]
C: \ build \ mobilewebsite [опубликованные файлы]
Это фон. Вот конкретные вопросы.
Мы совершаем ошибку, пытаясь использовать MSDeploy для публикации в локальной файловой системе? Нам в основном нужен эквивалент функции «публикации» VS2010 с преобразованиями конфигурации. Мы не пытаемся выполнить развертывание на удаленных экземплярах IIS или чем-либо еще.
Есть ли способ сделать это, кроме указания папки публикации?
Я пытался использовать задачу MSBuild Copy, чтобы скопировать файлы в более разумные папки - но я не могу понять, как использовать подстановочные знаки для указания папок, которые нам нужно взять - нужно было бы быть чем-то вроде ...
C:. \ FolderPackageEndsUpIn [ANYFOLDERS] \ Сайт [ANYFOLDERS] \ PackageTmp **
Помощь!