0

リモートデータベースサーバー上のデータベースをバックアップしてから、そのバックアップファイルを確認しようとしています。

バックアップは正常に機能しますが、バックアップを確認しようとすると、ビルドが失敗してエラーが発生します。

DataFilePath not found: c:\DatabaseBackups\MyDB.bak

ローカルコンピューターで次のxmlビルドファイルを使用します。

<Project ToolsVersion="4.0" DefaultTargets="Default" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
        <TPath>C:\Program Files\MSBuild\ExtensionPack\4.0\MSBuild.ExtensionPack.tasks</TPath>
        <SqlInstance>myremoteserver</SqlInstance>
        <ProductionBackup>c:\DatabaseBackups\MyDB.bak</ProductionBackup>
        <SqlUserName>user</SqlUserName>
        <SqlPassword>pass</SqlPassword>
        <DatabaseName>MyDB</DatabaseName>
    </PropertyGroup>
    <Import Project="$(TPath)"/>
    <Target Name="BackupDB">
        <!-- Backup a database -->
        <MSBuild.ExtensionPack.Sql2008.Database TaskAction="Backup" DatabaseItem="$(DatabaseName)" MachineName="$(SqlInstance)" UserName="$(SqlUserName)" UserPassword="$(SqlPassword)" DataFilePath="$(ProductionBackup)"/>
        <!-- Verify a database backup -->
        <MSBuild.ExtensionPack.Sql2008.Database TaskAction="VerifyBackup" MachineName="$(SqlInstance)" UserName="$(SqlUserName)" UserPassword="$(SqlPassword)" DataFilePath="$(ProductionBackup)"/>
    </Target>
</Project>

このビルドファイルは、ローカルマシンでバックアップと検証を実行すると正常に機能しますが、MachineNameをリモートサーバーに変更すると失敗します。バックアップファイルを検索するとき、MS Buildはリモートマシンではなく、ローカルマシンで検索すると思います。MS Buildにバックアップファイルをリモートサーバーで検索するように指示するにはどうすればよいですか?

4

1 に答える 1

0

ファイル パスを unc パスとして指定するだけです。宛先をユーザーに共有すると、正常に機能するはずです。管理者権限がある場合:

<MSBuild.ExtensionPack.Sql2008.Database TaskAction="VerifyBackup" MachineName="$(SqlInstance)" UserName="$(SqlUserName)" UserPassword="$(SqlPassword)" DataFilePath="\\$(SQLInstance)\C$\DatabaseBackups\MyDB.bak"/>

それ以外の場合は、databaseBackups フォルダーをユーザーと共有します。

<MSBuild.ExtensionPack.Sql2008.Database TaskAction="VerifyBackup" MachineName="$(SqlInstance)" UserName="$(SqlUserName)" UserPassword="$(SqlPassword)" DataFilePath="\\$(SQLInstance)\DatabaseBackups\MyDB.bak"/>
于 2012-01-27T09:55:11.087 に答える