Я вырываю волосы из-за этой проблемы с 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 [опубликованные файлы]
Это фон. Вот конкретные вопросы.
Делаем ли мы ошибку, пытаясь использовать MSDeploy для публикации в локальной файловой системе? В основном нам нужен эквивалент функции публикации VS2010 с преобразованиями конфигурации. Мы не пытаемся выполнить развертывание на удаленные экземпляры IIS или что-то в этом роде.
Есть ли способ сделать это, кроме указания папок публикации?
Я пытался использовать задачу MSBuild Copy, чтобы скопировать файлы в другие разумные папки - но я не могу понять, как использовать подстановочные знаки для указания папок, которые нам нужно взять - это должно быть что-то вроде ...
C: \ FolderPackageEndsUpIn [ANYFOLDERS] \ Website [ANYFOLDERS] \ PackageTmp * *.
Помогите!