Мы используем MSDeploy с проектом веб-развертывания для развертывания проекта нашего веб-сайта с использованием сборок TFS (TFS 2010 и VS 2010).
Сборка TFS отправляет встроенные файлы в подпапку указанногоудалить папку, поэтому, если я укажу эту папку как:
\\ machineName \ Builds
Проект сборки будет сброшен в:
\\ имя_компьютера \ Строит \ 1.Test \ 20120226.38 \ Deploy
В этом примере «1. Test» - это имя определения сборки TFS, «20120226.38» - это отметка даты и номер сборки, а «Deploy» - этоимя проекта веб-развертывания.
Когда я создаю свою группу элементов DeploySource в файле Deploy.wdproj и указываю точный путь для источника MSDeploy (см. непосредственно ниже), все в порядке.Пример:
<ItemGroup Condition=" '$(Configuration)|$(Platform)' == 'Test|AnyCPU' ">
<DeploySource Include="DirPath">
<Path>C:\Builds\1. Test\20120226.39\_PublishedWebsites\Deploy</Path>
<ComputerName>machineName</ComputerName>
<UserName>$(UserName)</UserName>
<Password>$(Password)</Password>
</DeploySource>
</ItemGroup>
Чтобы учесть изменение номера и даты сборки, я добавил переменную $ (BuildNumber) через файл DefaultTemplate.xaml .Итак, вот слегка измененный пример:
<ItemGroup Condition=" '$(Configuration)|$(Platform)' == 'Test|AnyCPU' ">
<DeploySource Include="DirPath">
<Path>C:\Builds\1. Test\<b>$(BuildNumber)</b>\_PublishedWebsites\Deploy</Path>
<ComputerName>machineName</ComputerName>
<UserName>$(UserName)</UserName>
<Password>$(Password)</Password>
</DeploySource>
</ItemGroup>
И они передаются в этот вызов MSDeploy:
<MSDeploy Condition=" '$(Configuration)|$(Platform)' == 'Test|AnyCPU' "
Whatif="$(WhatIf)"
Verb="sync"
Source="@(DeploySource)"
Destination="@(DeployDest0)"
ExePath="$(MSDeployPath)"
/>
Вот моя проблема:
С примером 1 вышевсе в порядке, и сайт сборки развертывается в правильном месте.
В примере 2, приведенном выше, я получаю следующую ошибку:
MSDEPLOY: Object of type 'dirPath' and path '\\machineName\Builds\1. Test\20120227.2\_PublishedWebsites\Deploy' cannot be created.
MSDEPLOY: (2/27/2012 6:54:14 PM) An error occurred when the request was processed on the remote computer.
MSDEPLOY: Object of type 'dirPath' and path '\\machineName\Builds\1. Test\20120227.2\_PublishedWebsites\Deploy' cannot be created.
MSDEPLOY: Could not find directory '\\machineName\Builds\1. Test\20120227.2\_PublishedWebsites\Deploy'.
MSDEPLOY: Could not find a part of the path '\\?\UNC\machineName\Builds\1. Test\20120227.2\_PublishedWebsites\Deploy'.
Извлечение и изменение вручную номера сборки isn 'т реалистичный вариант.Я чувствую, что здесь есть что-то простое, чего мне не хватает, но я не могу это понять.
Примечание. Это проект веб-сайта, а не проект веб-приложения.Ограничения по времени и зависимости от поставщиков черного ящика не позволят выполнить преобразование.