MSBuild extensionpack: проверьте резервное копирование удаленного - PullRequest
0 голосов
/ 26 января 2012

Я пытаюсь сделать резервную копию базы данных на удаленном сервере баз данных и затем проверить этот файл резервной копии.

Резервная копия работает хорошо, но когда я пытаюсь проверить резервную копию, сборка завершается с ошибкой:

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>

Этот файл компоновки работает нормально, если я запускаю резервное копирование и проверку на локальном компьютере, но происходит сбой при изменении имени машинына удаленный сервер.Я считаю, что при поиске файла резервной копии MS Build выполняет поиск на моей локальной машине, а не на удаленной машине.Как я могу сказать MS Build искать файл резервной копии на удаленном сервере?

1 Ответ

0 голосов
/ 27 января 2012

Просто укажите путь к файлу как путь 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"/>
...