我在使用VS 2015 MSBuild通过命令行部署数据库项目时遇到问题。问题是我需要能够在没有安装VS 2013的情况下仅使用14.0的MSBuild。
我正在使用14.0 MSBuild:
C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe
以下是有效的,因为我还安装了Visual Studio 2013以及相应的SQL Server数据工具:
MSBUILD "C:\Users\XYZ\Desktop\temp\Testing\TestProject\TestProject.sqlproj" /t:build "/p:Platform=AnyCPU" /t:deploy "/p:TargetConnectionString=Data Source=localhost;IntegratedSecurity=True" /p:TargetDatabase=TestDeployDb /p:Configuration=Release /p:VisualStudioVersion=12.0
但是,如果我将“VisualStudioVersion”更改为“14.0 for VS 2015,我会收到错误:
Deploy error Deploy72002: Unable to connect to master or target server 'TestDeployDb'. You must have a user with the same password in master or target server 'TestDeployDb'.
答案 0 :(得分:1)
根据您的描述,我创建了一个演示并在我身边重现您的问题,您使用了错误的连接字符串。请修改你的命令:
MSBUILD "C:\Users\XYZ\Desktop\temp\Testing\TestProject\TestProject.sqlproj" /t:build "/p:Platform=AnyCPU" /t:deploy /p:TargetConnectionString="Data Source=localhost;IntegratedSecurity=True" /p:TargetDatabase="TestDeployDb" /p:Configuration=Release /p:VisualStudioVersion=14.0
答案 1 :(得分:1)
感谢Cole Wu说我的连接字符串无效,但他的答案对我来说并不适用。出于某种原因,我的连接字符串*对12.0有效,但对14.0无效。
问题最终是因为我有IntegartedSecurity
而不是Integrated Security
,这在移动到14.0时违反了我的命令
这是有效的决赛:
MSBUILD "C:\Users\XYZ\Desktop\temp\Testing\TestProject\TestProject.sqlproj" /t:build "/p:Platform=AnyCPU" /t:deploy /p:TargetConnectionString="Data Source=localhost;Integrated Security=True" /p:TargetDatabase="TestDeployDb" /p:Configuration=Release /p:VisualStudioVersion=14.0