Visual Studio 发布配置文件中的数据库项目目标平台
Visual Studio Database project target platform in publish profile
我可以在发布配置文件中指定目标平台(SQL Server 2014、SQL Server 2016、Azure 等)吗?我有一个数据库项目,有时部署到本地 SQL Server 2016 实例,有时部署到 Azure SQL 数据库。我只想指定 2 个不同的发布配置文件,并在那时即时更改目标平台。这可能吗?
Azure、MSSQL 2014、MSSQL 2016 对数据库项目有不同的限制和要求。
让我们想象一下:
您在 MSSQL 2014 中使用 FILESTREAM,并将在 MSSQL 2016 中使用。您的 FILESTREAM 在数据库项目中有描述。现在,您在解决方案中添加了 Azure 支持并希望部署数据库。但是,Azure does not support FILESTREAM。
所以在这种情况下,您不能拥有一个数据库项目。您需要 select 支持的最小目标项目:
在这种情况下,它是 Microsoft Azure SQL 数据库(或 V12)。当您 select 支持的目标平台最少时,您可以确定所有 "higher" 版本都将支持它。
假设 Azure 是 MSSQL 服务器功能的某个子集。并且数据库项目验证所有使用跨目标平台的功能。
如果您担心 select将 Microsoft Azure SQL 数据库作为目标平台,您将无法发布到 MSSQL Server 2016 - 没问题,它会起作用。
如果您需要使用不同的连接字符串或发布设置 - 创建不同的发布配置文件。
您可以使用 msbuild 和 rebuild 来生成 dacpac。我们可以在项目中使用powershell更改目标平台,实现自动化。
msbuild SlnFolders.sln /t:NotInSolutionfolder:Rebuild;NewFolder\InSolutionFolder:Clean
从那里我们可以使用发布配置文件进行 dacpac 部署。
我可以在发布配置文件中指定目标平台(SQL Server 2014、SQL Server 2016、Azure 等)吗?我有一个数据库项目,有时部署到本地 SQL Server 2016 实例,有时部署到 Azure SQL 数据库。我只想指定 2 个不同的发布配置文件,并在那时即时更改目标平台。这可能吗?
Azure、MSSQL 2014、MSSQL 2016 对数据库项目有不同的限制和要求。
让我们想象一下: 您在 MSSQL 2014 中使用 FILESTREAM,并将在 MSSQL 2016 中使用。您的 FILESTREAM 在数据库项目中有描述。现在,您在解决方案中添加了 Azure 支持并希望部署数据库。但是,Azure does not support FILESTREAM。
所以在这种情况下,您不能拥有一个数据库项目。您需要 select 支持的最小目标项目:
在这种情况下,它是 Microsoft Azure SQL 数据库(或 V12)。当您 select 支持的目标平台最少时,您可以确定所有 "higher" 版本都将支持它。
假设 Azure 是 MSSQL 服务器功能的某个子集。并且数据库项目验证所有使用跨目标平台的功能。
如果您担心 select将 Microsoft Azure SQL 数据库作为目标平台,您将无法发布到 MSSQL Server 2016 - 没问题,它会起作用。
如果您需要使用不同的连接字符串或发布设置 - 创建不同的发布配置文件。
您可以使用 msbuild 和 rebuild 来生成 dacpac。我们可以在项目中使用powershell更改目标平台,实现自动化。
msbuild SlnFolders.sln /t:NotInSolutionfolder:Rebuild;NewFolder\InSolutionFolder:Clean
从那里我们可以使用发布配置文件进行 dacpac 部署。