SSIS在BIDS中编译,在DTEXEC中失败

时间:2018-02-20 13:09:00

标签: visual-studio-2015 ssis visual-studio-2017 bids

我有一个SSIS软件包,它可以在带有BIDS的visual studio中运行良好(由于32位限制导致内存不足)。 现在,当我重新构建软件包时,将dtsx复制到另一个位置并要求DTEXEC运行它,我会受到这种日志消息的轰炸: "说明:CS1056 - 意外字符' $',ScriptMain.cs,660,39"。

从我能够找到的,这涉及到我使用字符串插值作为我的一些脚本任务(C#)的一部分这一事实。 C#版本设置为Visual Studio C#2015,所有脚本在visual studio中编译良好。

DTEXEC确实告诉我它无法在程序包中编译脚本,但是当Visual Studio编译并运行它时它是如何实现的呢?

除了上面提到的错误,我也得到:

  1. "说明:CS1519 - 无效令牌'。'在类,结构或接口成员声明中,PIMChannelStructureEntity.cs,10,42"。
  2. "描述:CS1002 - ;预期,PIMChannelStructureEntity.cs,10,30"。
  3. "描述:CS1520 - 方法必须有一个返回类型,PIMChannelStructureEntity.cs,10,43"。
  4. 对于上面的1,2和3,我检查了各个脚本,没有编译错误或警告。 我希望1,2和3是其他错误的症状,因为代码在visual studio中编译得很好。

    包裹的运行方式如下:
    / FILE" E:\ packageName.dtsx" / CONNECTION connName1;" Data Source = server; User ID = username; Password = password; Initial Catalog = catalog1; Persist Security Info = True; Max Pool Size = 10000; MultipleActiveResultSets = True; Connect Timeout = 30; Application Name = someLongAssAutogeneratedName;" / CONNECTION connName2;" Data Source = anotherServer; User ID = anotherUsername; Password = anotherPassword; Initial Catalog = catalog2; Persist Security Info = True; Application Name = anotherLongAssAutogeneratedName;" /检查点/报告IEW / CONSOLELOG NCSMT

    该软件包确实指向了正确的SQL服务器版本。

    非常感谢任何和所有可能出错的建议。我很茫然。

    编辑:

    1. 我已经查看了建议的副本,并没有让我更接近解决方案。此问题与TFS或构建过程无关或无形。
    2. 正在针对2016 SQL服务器运行该程序包。
    3. 执行时的第2行:"版本14.0.1000.169适用于64位"
    4. 通过DTExecUI运行包时,它会100%验证并通过。它将运行但与Visual Studio内部相同的32位限制。也许这是32位和64位运行时之间的问题?
    5. 用等效的string.Format(...)替换每次出现的字符串插值($"")后,验证会在每次出现时失败:':' ,';','。'等等,似乎是Main方法之外的每一行。

0 个答案:

没有答案