SQL 服务器数据库发布配置文件未使用已配置的 属性
SQL Server Database Publish Profile not using configured property
我们的 SQL Server 2012 数据库有一个数据库项目。该数据库有一些 SQL CLR 程序集,它们很少更新,我希望将其排除在自动 dacpac 部署之外。我使用以下设置创建了发布配置文件。
发布个人资料
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<TargetConnectionString></TargetConnectionString>
<AllowIncompatiblePlatform>True</AllowIncompatiblePlatform>
<CreateNewDatabase>False</CreateNewDatabase>
<IgnorePermissions>True</IgnorePermissions>
<DropObjectsNotInSource>False</DropObjectsNotInSource>
<IgnoreUserSettingsObjects>True</IgnoreUserSettingsObjects>
<IgnoreLoginSids>True</IgnoreLoginSids>
<IgnoreRoleMembership>True</IgnoreRoleMembership>
<ExcludeObjectTypes>"Assemblies;AsymmetricKeys"</ExcludeObjectTypes>
</PropertyGroup>
</Project>
此配置文件最重要的部分是标签 ExcludeObjectTypes,根据 MS documentation 应该从部署中排除这些类型。当我尝试使用此配置文件在 Visual Studio 中进行发布时,它仍在为非对称密钥和程序集生成 create/alter 脚本。我怎样才能排除这些类型?
发布配置文件生成的脚本
...
GO
PRINT N'Creating Asymmetric Key [MyKey]...';
GO
CREATE ASYMMETRIC KEY [MyKey]
AUTHORIZATION [dbo]
WITH ALGORITHM = RSA_1024;
GO
PRINT N'Altering Assembly [MyAssembly]...';
GO
ALTER ASSEMBLY [MyAssembly]
DROP FILE ALL;
...
SQL Server 2012 的语法必须不同于文档中链接的 SQL Server 的新版本。当我通过向导打开配置文件并单击 Advanced.. -> Ignore Tab and select Exclude assembles and 排除非对称密钥
然后它使用以下语法在发布配置文件中创建条目:
<ExcludeAssemblies>True</ExcludeAssemblies>
<ExcludeAsymmetricKeys>True</ExcludeAsymmetricKeys>
此定义正常生效。
我们的 SQL Server 2012 数据库有一个数据库项目。该数据库有一些 SQL CLR 程序集,它们很少更新,我希望将其排除在自动 dacpac 部署之外。我使用以下设置创建了发布配置文件。
发布个人资料
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<TargetConnectionString></TargetConnectionString>
<AllowIncompatiblePlatform>True</AllowIncompatiblePlatform>
<CreateNewDatabase>False</CreateNewDatabase>
<IgnorePermissions>True</IgnorePermissions>
<DropObjectsNotInSource>False</DropObjectsNotInSource>
<IgnoreUserSettingsObjects>True</IgnoreUserSettingsObjects>
<IgnoreLoginSids>True</IgnoreLoginSids>
<IgnoreRoleMembership>True</IgnoreRoleMembership>
<ExcludeObjectTypes>"Assemblies;AsymmetricKeys"</ExcludeObjectTypes>
</PropertyGroup>
</Project>
此配置文件最重要的部分是标签 ExcludeObjectTypes,根据 MS documentation 应该从部署中排除这些类型。当我尝试使用此配置文件在 Visual Studio 中进行发布时,它仍在为非对称密钥和程序集生成 create/alter 脚本。我怎样才能排除这些类型?
发布配置文件生成的脚本
...
GO
PRINT N'Creating Asymmetric Key [MyKey]...';
GO
CREATE ASYMMETRIC KEY [MyKey]
AUTHORIZATION [dbo]
WITH ALGORITHM = RSA_1024;
GO
PRINT N'Altering Assembly [MyAssembly]...';
GO
ALTER ASSEMBLY [MyAssembly]
DROP FILE ALL;
...
SQL Server 2012 的语法必须不同于文档中链接的 SQL Server 的新版本。当我通过向导打开配置文件并单击 Advanced.. -> Ignore Tab and select Exclude assembles and 排除非对称密钥
然后它使用以下语法在发布配置文件中创建条目:
<ExcludeAssemblies>True</ExcludeAssemblies>
<ExcludeAsymmetricKeys>True</ExcludeAsymmetricKeys>
此定义正常生效。