SSIS 脚本:名称空间中不存在 - 错误不断返回 - 我错过了什么?

问题描述 投票:0回答:1

我正在 Visual Studio 中为 SSIS 包编辑 C# 脚本。

我有两行给我错误:

`var tokenResult = JsonSerializer.Deserialize(result);

var token = new System.IdentityModel.Tokens.Jwt.JwtSecurityToken(accessToken);`

第一个抱怨上下文中不存在“JsonSerializer”,找不到“JsonElement”。

第二个命名空间中不存在“System.IdentityModel.Tokens.Jwt”。

如果我打开包管理器并运行以下行,错误就会消失并且脚本可以干净地编译。 (我还通过 NuGet 包管理器 GUI 安装)

PM> Install-Package System.IdentityModel.tokens.Jwt

如果我保存所有内容并运行程序包,它会在脚本处失败。再次打开脚本显示错误又回来了。

这几乎就像我没有以某种方式提交更改。我已经尝试在退出 VS 编辑器之前构建包。

任何帮助将不胜感激。

c# ssis namespaces
1个回答
0
投票

Nuget 和SSIS 不能一起玩。您需要对包进行 GAC,假设它们已签名,然后在部署服务器上重复该过程。

但是你的假设是 100% 正确的。当您打开脚本任务/组件时,它会使用临时文件夹进行工作。当您关闭编辑器实例时,SSIS 序列化脚本并在内部存储它们。包裹?不,它们只是被扔掉了。下次打开任务/组件时,您必须重新安装。最重要的是,当执行 SSIS 包时,SSIS 没有机制获取这些 nuget 包。

Microsoft 已经有 12 年的时间来解决这个问题,并且基于未修复它,很明显他们不会为此投入工程资金。更可惜了

© www.soinside.com 2019 - 2024. All rights reserved.