我如何获得BIML编译器以允许在脚本任务,脚本组件中使用c#6语言功能

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

所需的结果:获取我的BimlStudio项目以输出SSIS包,其脚本任务(或脚本组件)使用C#6语言功能。

我有一个SSIS 2014项目,其中有一个导入到BimlStudio的软件包

Varigence BimlStudio 5.0(64位)版本5.0.63501.0

Visual Studio版本信息:

Microsoft Visual Studio专业版2017版本15.9.5VisualStudio.15。发布/15.9.5+28307.280Microsoft .NET Framework版本4.7.03056Microsoft Visual Studio工具用于应用程序2017 00370-20004-06228-AA500

我到了要编译BimlStudio项目的地步。并非我必须这样做,但是因为我试图镜像本机SSIS 2014项目的生成行为,所以我已将.mst文件中的默认64位MSBuild路径从[]更改为

C:\ WINDOWS \ Microsoft.NET \ Framework64 \ v4.0.30319 \ msbuild.exe

to

C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Professional \ MSBuild \ 15.0 \ Bin \ amd64 \ MSBuild.exe
从技术上讲,要获得C#6的功能,我不认为这是必需的,但是请听我说。

在BimlStudio中,在“逻辑”或“项目视图”窗格中,右键单击我的项目,然后单击“生成”。

在“输出”窗格中,我得到以下信息(请注意粗体错误:

------建立------工作目录:C:\ PathToMyProject \ BIMLStudioProject \ outputMsBuild可执行文件:C:\ WINDOWS \ system32 \ cmd.exeMsBuild参数:用bimlc.exe复制此版本。使用bimlc.resp文件:bimlc.exe @“ C:\ PathToMyProject \ BIMLStudioProject \ output \ BIMLStudioProject.mst.bimlc.resp”Microsoft Windows [版本10.0.17134.706](c)2018年微软公司。版权所有。C:\ PathToMyProject \ BIMLStudioProject \ output> C:\ WINDOWS \ system32 \ chcp.com 65001活动代码页:65001C:\ PathToMyProject \ BIMLStudioProject \输出> C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Professional \ MSBuild \ 15.0 \ Bin \ amd64 \ MSBuild.exe @“ C:/ _ Development / Test Projects / BIML / BIMLStudioProject /output/BIMLStudioProject.mst.resp”'C:\ Program'不被识别为内部或外部命令,可操作的程序或批处理文件。C:\ PathToMyProject \ BIMLStudioProject \ output>退出%ERRORLEVEL%建立失败

MSBuild路径中是否有空格是“ verboten”?

我尝试在MSBuild exe的路径周围添加双引号。那没用。也许还有另一种方法可以做到这一点?这不是我的主要问题,但是任何帮助将不胜感激。

因此,回避了BimlStudio IDE的限制,我跳到命令行并执行以下命令:

cd“ C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Professional \ MSBuild \ 15.0 \ Bin \ amd64 \”MSBuild.exe @“ C:/PathToMyProject/BIMLStudioProject/output/BIMLStudioProject.mst.resp”

这将输出以下内容(滚动到底部以查看加粗的错误):

适用于.NET Framework的Microsoft(R)Build Engine版本15.9.21 + g9802d43bc3版权所有(C)Microsoft Corporation。版权所有。构建开始于11/8/2019 4:12:07 PM。节点1上的项目“ C:\ PathToMyProject \ BIMLStudioProject \ output \ BIMLStudioProject.mst.ProjectView.bimlproj”(默认目标)。BimlCompilerBuild:消息:Biml编译器版本5.0.63501.0消息::选项:$ TargetBimlScriptPrecompiledAssemblyPackagePath =$ PrecompileBimlScript =假$ LicenseKey =$ DisplayMachineCode =假$ TransformationScriptSettings =$ TransformationScriptResourceAssembly =$ TransformationScriptBundle =$ PackageConfigurationPath = C:\ PackageConfigurations$ DocumentationOutputPath = C:\ PathToMyProject \ BIMLStudioProject \ documentation$ DocumentationSettings =$ DocumentationTemplate =$ BuildDocumentation =假$ CleanOutputFolder =真$ WarnAsError =假$警告= 4$ TargetPath = C:\ PathToMyProject \ BIMLStudioProject \ output \\$ TempPath =$ WorkflowPath =$ BuildOnlyWithDependencies =假@BuildOnly:@SourceFiles:...C:\ PathToMyProject \ BIMLStudioProject \ AddedBiml \ ScriptProjects \ ST_4ed03a23e1db4022ad98d6615e195f26.biml...@IncludeFiles:@TemplateFiles:@BimlDocSchemaGraphProfiles:@BundleFiles:@BundleSettings:@ResponseFiles:$ SsisDeploymentModel =项目$ SsasVersion = Ssas2014$ SsasTabularVersion = SsasTabular2016$ SsisVersion = Ssis2014年$ SqlVersion = SqlServer2014$ DdlBuildMode = SsisPackages$ SsisEncryptionPassword =$ SsisExternalColumnsQueryTimeout =$ ImportSsis =错误$ ImportSsisOptionsPath =$ GetHelp =假消息:正在处理Biml代码...消息::正在运行项目变压器...消息::正在运行自定义变压器...消息::正在运行核心变压器...消息::发射SQL Server资产...消息:: 1/1发射项目SagittaExtract.dtproj消息:1/1发射程序包PackageTemplate在脚本项目'ST_4ed03a23e1db4022ad98d6615e195f26':\ ScriptMain.cs(129,42):错误:错误::意外字符'$'[C:\ PathToMyProject \ BIMLStudioProject \ output \ BIMLStudioProject.mst.ProjectView.bimlproj]在脚本项目'ST_4ed03a23e1db4022ad98d6615e195f26'中:\ ScriptMain.cs(223,35):错误:错误::意外字符'$'[C:\ PathToMyProject \ BIMLStudioProject \ output \ BIMLStudioProject.mst.ProjectView.bimlproj]完成构建项目“ C:\ PathToMyProject \ BIMLStudioProject \ output \ BIMLStudioProject.mst.ProjectView.bimlproj”(默认目标)-失败。建立失败。

注意,我的脚本任务的字符'$'无效。这与执行string interpolation(C#6.0语言功能)相对应。

所以我该怎么做才能在脚本任务中获得C#6语言功能?

我尝试使用Biml Project的默认MSBuild路径和版本,并添加/ toolsversion开关。

MSBuild.exe ... /tv:14.0

然后,更改为使用VS 2017的64位MSBuild.exe

MSBuild.exe ... /tv:15.0

都不起作用。

非常感谢您提供帮助以使其正常工作。

谢谢。

所需结果:获取我的BimlStudio项目以输出SSIS包,其脚本任务(或脚本组件)使用C#6语言功能。我有一个带有单个软件包的SSIS 2014项目,我已经...

c# ssis msbuild c#-6.0 biml
1个回答
0
投票

路径名中的空格

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