4

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 を使用しました。

4

1 に答える 1

0

エラーが示すように、互換性のあるプロバイダーではありませんdirPathが、. こちらをご覧くださいiisAppiisAppdirPath

iisAppディレクトリをソースとして使用できるため、iisApp次のようにターゲット ディレクトリをパッケージ化してみてください。

msdeploy -verb:sync -source:iisApp=c:\inetpub\wwwroot -dest:package=Package.zip

MSBuildところで、Visual Studio を使用している場合は、 with を使用してMSDeploy パッケージを生成できます/t:Publish

于 2014-01-21T08:46:16.377 に答える