sql >> Base de Datos >  >> RDS >> Sqlserver

cómo usar las propiedades de msbuild en el script sqlproj (SQL Server 2012)

En un servidor sql 2012 sqlproj (proyecto de base de datos SSDT), utiliza perfiles de publicación. Puede comenzar haciendo clic derecho en su proyecto de base de datos y seleccionando 'Publicar'.

A continuación, puede establecer las opciones deseadas y guardarlas en un perfil de publicación en su proyecto. Al hacer doble clic en este perfil, se inicia el asistente de publicación con las opciones correctas configuradas.

En su perfil de publicación, puede incluir valores codificados para las variables sqlcmd:

<ItemGroup>
    <SqlCmdVariable Include="ProjectDirectory">
        <Value>UNKNOWN</Value>
    </SqlCmdVariable>
</ItemGroup>

Si lo desea, puede actualizarlos con valores dinámicos durante la compilación. En su proyecto msbuild:

<Target Name="SetProjectDirectoryInPublishXml">
    <ItemGroup>
        <Namespaces Include="nsMsbuild">
            <Prefix>nsMsbuild</Prefix>
            <Uri>http://schemas.microsoft.com/developer/msbuild/2003</Uri>
        </Namespaces>
    </ItemGroup>
    <ItemGroup>
        <SSDTPublishFiles Include="$(SolutionBinFolder)\**\*.publish.xml" />
    </ItemGroup>
    <MSBuild.ExtensionPack.Xml.XmlFile Condition="%(SSDTPublishFiles.Identity) != ''"
                                   TaskAction="UpdateElement"
                                   File="%(SSDTPublishFiles.Identity)"
                                   Namespaces="@(Namespaces)" 
                                   XPath="//nsMsbuild:SqlCmdVariable[@Include='ProjectDirectory']/nsMsbuild:Value" 
                                   InnerText="$(MSBuildProjectDirectory)"/>
</Target>

Esto requiere una extensión para actualizar el XML. Uso el paquete de extensión msbuild.

Los créditos de este mecanismo van a Jamie Thomson