提问人:Mark 提问时间:11/15/2023 更新时间:11/15/2023 访问量:24
获取尝试分析表达式失败并返回错误代码0xC00470A6
Getting Attempt to parse the expression failed and returned error code 0xC00470A6
问:
我知道可能会抛出此错误的原因多种多样,但我没有发现任何搜索 SO 似乎适用于这种情况。
我有一个无法构建的 SSIS 包,并出现以下错误:
Attempt to parse the expression "Replace(@[$Project::RootDirectory] + "\\files\\in",
"\\\\","\\")" failed and returned error code 0xC00470A6.
The expression cannot be parsed.
It might contain invalid elements or it might not be well-formed.
There may also be an out-of-memory error.
但是,我可以打开构建失败的表达式,然后单击“评估表达式”,没有任何问题。它工作得很好。
这是 Visual Studio 2017,该公司将其与生产包一起使用,因此无法选择升级版本。
我已经尝试了我能想到的一切来减轻错误,但它仍然存在。
我应该提到的另一点是随后的错误:
The variable "$Project::RootDirectory" was not found in the Variables collection.
The variable might not exist in the correct scope.
并且此包是从 SQL 包存储中导出的,用于修改
如果构建似乎试图在后台执行相同的评估并且由于某种原因出现问题,我该如何解决该错误?
答:
并且此包是从 SQL 包存储中导出的,用于修改
这是你的吸烟枪。可能。
包和项目变量仅对项目部署模型包有效。SSIS 包存储区和各种其他名称暗示了旧包部署模型,通常存储在磁盘上,但可能存储在 msdb 中。
假设你下载了部署单元(一个 .ispac 文件),该文件是 SSIS 项目的独立项目文件。它包含重新创建项目所需的一切:清单文件、包、project.params 文件以及任何项目级连接管理器(可选)。
你遇到的是,你打开的 SSIS 项目找不到对项目参数“你是如何达到这一点的”的引用,这是未知的。分辨率可能取决于我们如何达到这一点,但我首先会添加一个项目参数$Project::RootDirectory
RootDirectory
然后你的表达式至少会解析。如果值为空,则如下所示
如果这解决了问题,那么问题就是将其部署回其所属的位置。project.params 文件需要在包中移动,否则,执行将失败,并可能出现类似的错误,因为执行引擎没有对项目参数的引用。
评论