MSBuild 内から MSDeploy タスクを使用してパッケージをデプロイしようとしています。
ソースと宛先を表す 2 つのアイテム グループを構成しました。
ソースは私が作成したパッケージです。Solution.zip 宛先は、リモート サーバー上の IIS 7 です。
構成は次のようになります。
<ItemGroup>
<DeploySource Include="package">
<Path>$(PackagePath)</Path>
</DeploySource>
</ItemGroup>
<ItemGroup>
<DeployDestination Include="iisApp">
<ComputerName>https://myserver.com/msdeploy.axd</ComputerName>
<UserName>XXXXXXXX</UserName>
<Password>XXXXXXXX</Password>
<AuthType>Basic</AuthType>
<Path>Default Web Site/Umbraco.Web_deploy</Path>
</DeployDestination>
</ItemGroup>
<PropertyGroup>
<ConfigFileName>Staging.config</ConfigFileName>
</PropertyGroup>
次に、次のように MSBuild 内で MSDeploy タスクを呼び出します。
<Target Name="Deploy_v2">
<!-- Using ContinueOnError due to a bug in MSDeploy task-->
<MSDeploy
ContinueOnError="true"
ToolPath="C:\Program Files\IIS\Microsoft Web Deploy V3"
Verb="sync"
Source="@(DeploySource)"
Destination="@(DeployDestination)"
AllowUntrusted="true"
Replace="objectName=filepath,match=Configs\$(ConfigFileName),replace=web.config"
/>
</Target>
これにより、次のコマンドラインが実行されます
C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe -source:package='C:\CLIENTS\DAM\Components\Umbraco\SiteTemplate_v6_1_6\Output\Package\UmbracoTemplate_v6_1_6.zip' -dest:iisApp='Default WebSite/Umbraco.Web_deploy',ComputerName='https://myserver.com/msdeploy.axd',UserName='XXXXXXX',Password='XXXXXXXX',AuthType='Basic' -verb:sync -replace:objectName=filepath,match=Configs\Staging.config,replace=web.config -allowUntrusted
残念ながら、次のエラーが発生します。
MSDEPLOY : Error: Source (dirPath) and destination (iisApp) are not compatible for the given operation.
MSDeploy が私のパッケージを dirPath として表示しているように思えます。パッケージを作成したとき、ソースとして dirPath を使用しました。