visual-studio - 在 CI/CD 实施期间使用 MSBuild 构建 SSIS 项目时出错
问题描述
有人可以帮助解决我在使用 msbuild 构建 SSIS 项目时遇到的以下错误。我在机器上有 Visual Studio 2015。使用 MSBuild 14.0 "*
错误 MSB4041:项目的默认 XML 命名空间必须是 MSBuild XML 命名空间。如果项目以 MSBuild 200 3 格式创作,请将 xmlns="http://schemas.microsoft.com/developer/msbuild/2003" 添加到元素中。如果项目是以旧的 1.0 或 1.2 格式编写的,请将其转换为 MSBuild 2003 格式。
*" 我在网上浏览了一些文章,但找不到这种情况的解决方案。
解决方案
*" 我在网上浏览了一些文章,但找不到这种情况的解决方案。
恐怕答案是否定的。目前不支持此方案(使用 msbuild 构建 SSIS 项目)。
有人在 DC 论坛中发布了此问题,请参阅Support SSIS, SSRS, SSAS in MSBuild。因此,如果您尝试将 azure devops 用于 CI/CD 流程,请投票并跟踪此问题,以便在有任何更新时收到通知。如果您正在使用其他工具进行 CI/CD 流程,我建议您打开一个新功能请求以支持在本地计算机中为独立的 msbuild 工具构建 SSIS。
这里有两种可能有帮助的解决方法:
1.既然你已经安装了VS2015 ,你可以试试用devenv命令代替msbuild命令。
对于 VS2015,我们可以在 path中找到devenv.exe
和。两者都适用,但请注意:直接使用 devenv.exe 会阻止输出出现在控制台上。devenv.com
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE
devenv.exe
devenv.com
所以devenv.xxx ... xxx.dtproj /build
可以工作来构建SSIS项目。
2.我们可以找到in的binary( Microsoft.SqlServer.IntegrationServices.Build.dll
) 。然后我们可以使用msbuild UsingTask 元素来调用该程序集中定义的任务。SQL Server Data Tools
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE
DeploymentFileCompilerTask
核心是定义这个语句后,在我们自定义的msbuild目标中调用SSIS build的task:
<UsingTask TaskName="DeploymentFileCompilerTask" AssemblyFile="C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies\Microsoft.SqlServer.IntegrationServices.Build.dll" />
更新:
如果我们在同一个解决方案中有多个数据库项目和 SSIS 项目。直接使用类似命令devenv.com xx.dtproj
实际上将构建所有项目。
所以我建议我们这样使用命令:
- 打开 VS 的开发人员命令提示符
- cd 到解决方案目录
- 使用命令:
devenv.com SolutionName.sln /Build Development /Project SolutionName\xxx.dtproj /ProjectConfig Development
这实际上只会构建 SSIS 项目。
另外:如果您看到消息The project 'DatabaseProjectName.sqlproj' will close once model building has paused
。如果它不影响您的构建,请忽略它。如果我们使用上面的命令,我检查是否不会实际构建数据库项目(数据库项目的输出为空)。
推荐阅读
- excel - 函数与子(ByRef)
- java - 我使用 sendkeys 上传了一个 pdf 文件,删除了该文件并再次上传了一个不同的 pdf。这样做时,需要上传第一个 pdf 而不是第二个 pdf
- javascript - 在引导程序日期选择器(BS v3)中设置自定义主题颜色
- reactjs - 更改页面状态会影响 Gatsby.js 中的静态呈现吗?
- android - 如何检查我的云 Firestore 集合是否包含任何文档
- hyperledger - ./prereqs-ubuntu.sh 错误:不支持 Ubuntu 焦点
- r - 如何使用 R 合并具有多列的数据框?
- node.js - 当数据超过 80k 字节时截断 mssql 库中的 nvarchar
- flutter - 是否可以使用 SQFLITE 让用户在设备上保持登录状态?
- voice-recognition - 为什么在这个例子中,window_length/hop_length 与 librosa.core.stft 中的采样率相乘?