Как мне избежать такой глубокой структуры папок с MSDeploy в файловой системе с помощью MSBuild?

Я вырываю волосы из-за этой проблемы с MSBuild.

Мы ' re использует 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 [опубликованные файлы] 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 [опубликованные файлы] 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 [опубликованные файлы]

Это фон. Вот конкретные вопросы.

  1. Делаем ли мы ошибку, пытаясь использовать MSDeploy для публикации в локальной файловой системе? В основном нам нужен эквивалент функции публикации VS2010 с преобразованиями конфигурации. Мы не пытаемся выполнить развертывание на удаленные экземпляры IIS или что-то в этом роде.

  2. Есть ли способ сделать это, кроме указания папок публикации?

  3. Я пытался использовать задачу MSBuild Copy, чтобы скопировать файлы в другие разумные папки - но я не могу понять, как использовать подстановочные знаки для указания папок, которые нам нужно взять - это должно быть что-то вроде ...

C: \ FolderPackageEndsUpIn [ANYFOLDERS] \ Website [ANYFOLDERS] \ PackageTmp * *.

Помогите!

24
задан centralscru 16 November 2010 в 11:50
поделиться