我正在VS 2017中创建的脚本组件中尝试目标.NET 4.5.2。每次在VSTA中更改目标版本时,它都会恢复为4.5。我在其他几个站点以及这里看到的解决方案是在VSTA中打开脚本,转到属性,然后更改目标版本。无论我执行多少次,重建,重新启动VS等操作,目标版本始终会更改回4.5。
我想知道它是否与脚本组件版本保持关联,直到11为止。这将与SQL 2012相对应。我不知道为什么将脚本组件创建为版本11。我只有VS我的机器上安装了2017和SQL Server 2017。那会让我认为组件应该是v14。事实并非如此,我不知道如何更改版本。
我的真正目标是瞄准.NET 4.5.2。我只提到脚本组件版本,因为有关在VSTA中更改目标版本的答案对我不起作用,尽管这可能与我有关。
答案 0 :(得分:0)
这是一个非常有趣的问题。我一直在我本地的开发箱中戳这个问题,并且发现了一些有趣的东西。
我们有两个环境。带BIDS的SQL 2008 R2(VS 2008)和带SSDT的SQL 2016(VS 2017)。使用BIDS,我可以按预期更改脚本任务的目标框架版本。在VSTA中重新加载脚本总是会使用正确的框架版本集打开ScriptMain.cs文件。
在VS 2017中,我可以在VSTA中打开脚本任务,并且如您所见,目标框架始终加载为4.5。但是,如果我将其更改为4.5.2,构建解决方案,关闭VSTA,然后保存并关闭程序包,则可以在文本编辑器中打开.dtsx文件,并且可以看到它保存了正确的框架版本。任务。
我认为问题在于,尽管脚本存储在程序包定义中,但是当您编辑脚本时,VSTA会将该脚本作为临时项目的一部分打开。默认情况下,这个临时项目的目标是4.5。
我发现,如果将脚本的临时项目的目标框架设置为4.5.2,则编写所有4.5.2代码,构建项目,保存所有文件,然后关闭VSTA,在“脚本任务”上单击“确定”编辑,然后保存您的程序包,您的脚本将使用正确的目标框架保存到程序包中。如果您尝试再次编辑脚本,则必须再次设置框架版本。