VS2017含SSIS的VSTS自动化构建:如何为EncryptSensitiveWithPassword包加密码?
解决SSIS自动化构建中EncryptSensitiveWithPassword密码输入的问题
我之前处理过一模一样的场景,devenv确实搞不定这个密码弹窗问题——毕竟它是面向GUI的工具,根本没设计命令行传递密码的参数。给你两个更适配自动化场景的靠谱方案:
方案1:用SSIS专用的dtbuild.exe命令行工具
这是微软专门为SSIS项目打造的命令行构建工具,完美支持加密包的密码传递:
- 先找到
dtbuild.exe的路径,VS2017的话一般在这个位置(根据你的VS版本/edition调整,比如把Enterprise换成Professional或Community):C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\Extensions\Microsoft\SSIS\150\Binn - 执行构建命令,直接在参数里指定包密码:
dtbuild.exe /project "C:\Users\source\repos\LoadStageAreafromNap\LoadStageArea\LoadStageArea\LoadStageArea.dtproj" /configuration Release /property:Password=YourSecurePackagePassword
方案2:用msbuild命令(更适配Azure DevOps/VSTS集成)
如果你的VSTS构建流程已经在使用msbuild,直接加个密码参数就能解决:
msbuild "C:\Users\source\repos\LoadStageAreafromNap\LoadStageArea\LoadStageArea\LoadStageArea.sln" /t:Build /p:Configuration=Release /p:SSISPassword=YourSecurePackagePassword
额外安全提醒
在VSTS里绝对不要明文写密码!把密码存到变量组的秘密变量里,然后在构建任务里引用,比如:
msbuild "<你的解决方案路径>" /t:Build /p:Configuration=Release /p:SSISPassword=$(SSISPackageSecretPassword)
这样密码不会泄露在日志或脚本里,安全性拉满。
内容的提问来源于stack exchange,提问作者Astrid
相关产品推荐
相关产品推荐

