We recommend using Visual Studio 2017

Microsoft.SqlServer.Management.Dac Namespace

The Microsoft.SqlServer.Management.Dac namespace contains classes that represent the Dac objects. The top-level instance is called DacStore and provides the connection to SQL Server. The Dac objects can be used to create and manage a DAC package, which contains all the information required to re-create a data-tier application.

The Microsoft.SqlServer.Management.Dac namespace contains the DAC objects. The DAC objects are used together with the Microsoft.SqlServer.Managment.Smo, Microsoft.SqlServer.Managment.Dmf, and Microsoft.SqlServer.Managment.Utility namespaces to create DAC packages. The DAC packages can be installed on an instance of SQL Server using the DAC object model, or deployed onto the SQL Server Utility using the SQL Server Utility object model. In Design mode, SMO is not connected to an instance of SQL Server. The SMO objects are used to design a data-tier application structure which can be saved into the DAC package. A DAC package can also include a limited amount of reference data and some miscellaneous files. Policy information is stored for each SMO instance class, and for the overall instance of SQL Server using DMF conditions. After it is created, the DAC package can be used to install the data-tier application on an instance of SQL Server that meets the specified DMF conditions. In connected mode, the SMO Server object represents an instance of SQL Server.

The Microsoft.SqlServer.Management.Dac namespace resides in the Microsoft.SqlServer.Management.Dac.dll file. Additionally, some of the enumeration classes are in the Microsoft.SqlServer.Management.DacEnum.dll files. You must import both files to access the classes in the Microsoft.SqlServer.Management.Dac namespace. In addition, you must import the Microsoft.SqlServer.Managment.Smo, Microsoft.SqlServer.Managment.Dmf, and Microsoft.SqlServer.Managment.Sdk.Sfc namespaces to create a DAC package.

By using the Microsoft.SqlServer.Management.Dac namespace, you can do the following:

  • Create an object graph that represents the data-tier application structure.

  • Add reference data.

  • Add miscellaneous files

  • Add deployment conditions.

  • Add configuration conditions.

  • Install the DAC package.

  • Upgrade a DAC package.

  • Create a DAC package.

  • Load and save a DAC package from file (serialize and deserialize).

Public classActionNotSupportedExceptionThe ActionNotSupportedException class is used to raise an exception when the requested data-tier action, such as upgrade or register, is not supported by the version of the Database Engine the application is connected to.
Public classBinarySourceBaseThe BinarySourceBase type is a base class that provides access to the IBinarySource interface.
Public classConnectionNotSetExceptionThe ConnectionNotSetException class is used to raise an exception when the connection passed to a DAC action, such as install, upgrade, or uninstall.
Public classDacActionEventArgsRepresents the data sent when an event is raised by a DAC action step during both deployment and uninstall.
Public classDacActionValidatorValidates that the requirements of the DAC action (install, upgrade, or uninstall) are in place.
Public classDacCompilationErrorThe CompilationError class represents an error generated when the DAC package is being compiled.
Public classDacCompilationErrorCollectionThe DacCompilationErrorCollection type stores a collection of DAC compilation errors.
Public classDacCompilationResultThe DacCompilationResult class represents the DAC package and the collection of errors generated by compiling it.
Public classDacCompilationUnitThe DacCompilationUnit accepts Transact-SQL content and compiles it into a data-tier application (DAC) type. Any Transact-SQL file can be added or removed prior to compilation. 
Public classDacConfigThe DacConfig class returns data-tier application (DAC) configuration information.
Public classDacDatabaseInformationThe DacDatabaseInformation object stores information about data-tier application (DAC) actions that can be performed on a database.
Public classDacDomainThe DacDomain class instantiates the Microsoft.SqlServer.Management.Sdk.Sfc methods and properties inherited by the DacStore class.
Public classDacDomain.KeyThe DacDomain.Key class contains the key that identifies the DacDomain class.
Public classDacExceptionThe DacException class is a generic exception that is raised when an error occurs using the Microsoft.SqlServer.Management.Dac namespace.
Public classDacExtractionExceptionThe DacExtractionException class is a an exception that is raised when an error occurs during extraction of a DAC package.
Public classDacExtractionUnitThe DacExtractionUnit class contains the information that must be extracted to a DAC type, such as server graphs and miscellaneous files.
Public classDacExtractValidationResultThe DacExtractValidationResult object represents the result of extracting objects from a DAC package.
Public classDacInstanceThe DacInstance type stores metadata information, such as the instance name and date created, about a deployed instance of a data-tier application (DAC).
Public classDacInstance.KeyThe DacInstance.Key class represents the key that identifies the DacInstance class.
Public classDacInstanceCollectionThe DacInstanceCollection type stores one or more DAC instances contained in an instance of the Database Engine.
Public classDacServerInformationThe DacServerInformation class specifies the level of support for data-tier application (DAC) operations, such as upgrade, in an instance of the Database Engine.
Public classDacStoreThe DacStore type is the root of the DAC object model. It is the root for a collection of DAC instances.
Public classDacTypeThe DacType class represents the set of data-tier objects, policies, and properties developed and deployed to support a specific application.
Public classDacUpgradeOptionsUse this type to specify which options are taken when upgrading a DAC instance.
Public classDacUpgradeResultThe DacUpgradeResult class records information about the results of upgrading a DAC instance.
Public classDatabaseDeploymentPropertiesThe DatabaseDeploymentProperties object represents the properties of a deployed database.
Public classDatabaseExtractValidatorValidates that the database can be extracted.
Public classDeploymentValidationExceptionThe DeploymentValidationException class represents an exception thrown during DAC deployment due to a validation error.
Public classDesignModeServerExtractExceptionThe DesignModeServerExtractException class represents an exception that is raised the server containing the database specified in an extract operation is in Design mode.
Public classExtractValidationExceptionThe ExtractValidationException class represents an exception thrown during a validation operation.
Public classFailedTargetSelectionExceptionThe FailedTargetSelectionException class represents an exception that is thrown when target selection policy fails during deployment of a DAC.
Public classFileExtraSourceThe FileSource type represents a miscellaneous file that is included in the DAC package.
Public classInvalidaDACTypeCredentialsExceptionThe InvalidDacTypeCredentialsException class is an exception that is raised when upgrading a DAC if the credentials of the new DAC type do not match the credentials of the current DAC instance.
Public classInvalidaDatabaseStateExceptionThe InvalidDatabaseStateException class is an exception that is raised when a database is in a state that cannot support a requested data-tier application (DAC) action, such as deploy or upgrade.
Public classInvalidDatabaseExtractExceptionThe DatabaseExtractException class is an exception that is raised when the database specified in an extract operation is invalid.
Public classInvalidDatabaseStateForExtractExceptionRaised when the database state prevents an extraction operation.
Public classInvalidInputExceptionThe InvalidInputException class is raised when validation of input data fails in the DAC package.
Public classMiscellaneousFilesCollectionThe MiscellaneousFilesCollection class contains a collection of files to be added to the DAC package.
Public classMissingDacSchemaExceptionThe MissingDacSchemaException class is an exception that is raised during validation when the DAC schema is missing.
Public classMissingExtractServerPermissionsExceptionThe MissingExtractServerPermissionsException class represents an exception that is raised during extraction when the caller has insufficient permissions on the server to extract the database.
Public classMissingServerPermissionsExceptionThe MissingServerPermissionsException class represents an exception that is raised when the caller has insufficient permissions on the server to deploy the DAC.
Public classMissingServerPermissionsForRePartExceptionThe MissingServerPermissionsForRePartException class represents an exception that is raised when the caller does not have sufficient permissions
Public classServerDeploymentValidatorThe ServerDeploymentValidator class validates that the specified database engine is able to be used as a DAC store.
Public classSmoBuilderThe SmoBuilder class defines the GetSmoHierarchy method, which generates the SMO server hierarchy from binder metadata.
Public classSourceInfoThe SourceInfo class represents a location in a DAC source file that has thrown an exception.
Public classTSqlCompilationErrorCollectionThe TSqlCompilationErrorCollection class represents a collection of TSqlCompilationError objects.
Public classTSqlCompilationExceptionThe TSqlCompilationException class represents an exception that is thrown during Transact-SQL compilation.
Public classTSqlCompilationResultThe TSqlCompilationResult class defines methods and properties that contain information about the result of a Transact-SQL compilation.
Public classTSqlSourceFileThe TSqlSourceFile class represents a Transact-SQL source file.
Public classValidatedObjectThe ValidatedObject class describes objects that have been validated.
Public classValidatedObjectEventArgsRepresents an object that was validated as part of a data-tier application (DAC) action, such as deploy or delete.

Public structureLocationRepresents the location of the source of the error in the Transact-SQL input files to the DAC compilation unit.
Public structureTSqlCompilationErrorThe TSqlCompilationError class contains information on a Transact-SQL compilation error or warning.

Public interfaceIBinarySourceThe IBinarySource type is an interface that provides access to an I/O file stream.
Public interfaceIExtraSourceThe IExtraSource type is an interface that provides I/O stream access to a miscellaneous file in the DAC package.
Public interfaceISizeItemDefines an interface that allows the implementing class to calculate its size.

Public enumerationActionNameThe ActionName enumeration lists the names of each possible action step.
Public enumerationActionStateThe ActionState enumeration lists the possible DAC action step states.
Public enumerationDacExceptionTypeThe DacExceptionType enumeration contains values that are used to specify the type of DAC exception.
Public enumerationDacUninstallModeThe DacUninstallMode enumeration contains values that are used to specify what to do with the database associated with a DAC instance when the instance is uninstalled.
Public enumerationDatabaseStateEnumerates the possible states of the DAC database.
Public enumerationMessageLevelThis enum indicates the message level of the event args. Depending on the type of the event, the args will be annotated.
Public enumerationObjectValidationResultAn enumeration that specifies the values for reporting the results of validating or extracting an object.

Community Additions