【问题标题】:CS2001 Missing AssemblyAttributes.cs when executing SSIS package deployed to the serverCS2001 执行部署到服务器的 SSIS 包时缺少 AssemblyAttributes.cs
【发布时间】:2016-02-11 18:51:14
【问题描述】:

我创建了 SSIS 包并使用 Integration Services 部署向导将其部署到服务器。我将通过 SQL Server 2012 手动访问 Integration Services 目录并右键单击并执行我的包。

但是,包一直失败,当我检查执行报告的消息时,我收到以下错误。

他们似乎在我有脚本组件的数据任务上失败了。

分配:错误:CS2001 - 找不到源文件 'C:\Windows\TEMP.NETFramework,Version=v4.0.AssemblyAttributes.cs',CSC, 0, 0

分配:错误:无法编译包中包含的脚本。在 SSIS 设计器中打开包并解决编译错误。

【问题讨论】:

  • 您是否在服务器上安装了正确的 .NET 框架?
  • 正确的 .NET 框架是什么意思?比如,正确的版本 4.0 和 4.5?
  • 是的,在正确的版本中。查看错误,它抱怨缺少 assemblyattributes.cs。
  • 明白了。我检查了一下,确实安装了 .NET 4.0
  • hmmm...可能是脚本组件没有正确构建吗?抱歉,如果无法访问这些软件包,我将无法提供更多帮助。

标签: sql-server ssis sql-server-2012 script-component


【解决方案1】:

此答案是 UberDoodles 答案的更详细版本。

在 Windows 资源管理器中。

  1. 导航到C:\Windows\Temp\
  2. 右键单击文件夹并选择properties
  3. 转到标签Security,选择Advanced
  4. 在默认选项卡Permissions 上,选择Change Permissions
  5. 对于相关的权限条目,选择edit
  6. 默认情况下,我对Traverse folder / execute fileCreate files / write dataCreate folders / append data 进行了“允许”检查。
  7. 还要检查 List folder / read dataTake ownership 的“允许”。
  8. 按确定,窗口关闭
  9. 按应用并确认您需要的任何内容。

此外,登录用户已经拥有完全控制权,但是当我为“用户”条目更改此设置时,它对我有用。

(基于microsoft file/folder permissions)。

【讨论】:

  • 一旦我添加了 [SERVERNAME]\Users 的权限,这对我有用,尽管我不确定在包运行时哪个帐户实际用于脚本。我假设 SQL Server 服务帐户,但显然不是。
【解决方案2】:

我今天遇到了同样的问题,只是在 SQL 2016 上。 对我来说,它有助于将 Visual Studio 项目属性中的目标服务器版本从 SQL Server 2012 更改为 SQL Server 2016。

【讨论】:

  • 痛苦的解决方案,但它奏效了——我想这是解决问题的“正确”方式。这也意味着所有带有代码的包都需要重新编译。皮塔饼。关于在 temp 中添加 full perm 的其他响应是等待被 pwned 的利用向量。
【解决方案3】:

我正在调查同样的问题,我在这里遇到了一个解决方案:

https://social.msdn.microsoft.com/Forums/vstudio/en-US/73e67f3a-c575-4c73-a71d-ed7a2aeabb50/csc-error-cs2001-source-file-cwindowstempnetframeworkversionv40assemblyattributescs?forum=msbuild

基本上,运行包的账号需要拥有C:\Windows\Temp\文件夹的完全权限,才能创建临时类。

它对我有用:)

【讨论】:

【解决方案4】:

我遇到了同样的问题。我首先使用 Eric G. 响应并将ListRead 权限添加到c:\windows\temp。在我完成所有工作后,我返回并删除了该权限。然后我从 Visual Studio 重新部署了我的解决方案,这次使用 Martin 的 解决方案将部署目标指定为 SQL Server 2014(这是我使用的环境)。然后我重新运行了这个过程,它在删除 ListRead 的情况下工作。

我使用 Martin 的 解决方案保留它,因为如果我不需要它们,我不喜欢授予特殊权限。

祝你好运

【讨论】:

    【解决方案5】:

    [Visual Studio 2017 15.9.16]

    我刚刚以管理员身份重新启动了 Visual Studio,问题就消失了,这证实了上述答案的权限概念,但省去了我所有的工作。

    但这并不是一个怪癖,根据this question and its answer,您需要这种权限才能执行多项任务,例如在特定条件下进行分析和调试。

    为了完整起见,this blog 表示如果在打开第三方解决方案时以管理员身份运行 VS,您可能会遇到一些安全禁忌。

    【讨论】:

      猜你喜欢
      • 2020-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-08
      • 1970-01-01
      • 2013-09-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多