2016-08-30 47 views
0

有没有办法让一个SSIS项目中的变量指向[relative-project path] \ fixed_foldername \ fixed-filename.csv?Visual Studio中的SSIS项目:有没有办法在变量中引用解决方案/项目路径?

我有一个在Visual Studio中处理多个CSV文件的SSIS项目。这是典型的“处理给定目录中的所有CSV文件”类型的工作。

尽管SSIS包将查看给定目录中的每个文件,但在映射源CSV文件中的列时,我们确实需要将一个文件指定为“模板”。这是我希望包含在解决方案中的文件。

原因是我们使用visualstudio.com进行源代码控制,并且我希望能够引用模板文件(以防我们需要更改等),而不管我正在使用哪台机器。

所以我所做的是在我的项目目录(bin和obj目录旁边)中创建一个名为“模板源数据文件”的目录,以包含我的源CSV文件。然后我将CSV文件添加到项目中,使它们出现在“杂项”文件夹下。

但是,这只能解决我的一半问题。即使强大的CSV文件现在可以通过visualstudio.com源代码控制在任何主机上使用,但仍然存在文件路径在变量名称中被硬编码的问题。

默认情况下,名为'CSVFileName'(保存当前正在处理的CSV文件的名称)的变量指向模板CSV文件名。我担心的是文件的路径当然会根据我工作的主机而改变。

我只需要这个帮助Visual Studio开发,以便在开发过程中引用正确的文件名/路径。这实际上不适用于在生产环境中执行包时的参数。

+0

这是一个排除方式,所以你不必尝试,如果建议,但我想也许是一个脚本任务使用Directory.GetCurrentDirectory()会告诉你,但引用SQL服务器DTS \ binn路径。而AppDomain.CurrentDomain.SetupInformation.ApplicationBase实际上会给你用户本地的Microsoft sql server文件夹.... – Matt

+0

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/e66e88ca-6963-481a- ab4b-c055f58c61c1/how-to-get-application-path-in-integration-services-package?forum = sqlintegrationservices这个链接表示它不可能,但它确实给出了一些解决方法,但我认为在你的情况下最好的方法可能是将CSV模板文件托管在可供所有开发人员引用的文件共享中。 – Matt

+0

@Matt你如何建议这个脚本完成?请记住,我需要它在项目打开时启动 - 而不是在执行作业时启动。 – pmdci

回答

0

在阅读了上面的一些评论并与微软的一些人交谈之后,确实无法做我想做的事情。

最后我做了什么是遵循马特的建议,并在各地的网络共享可用的文件。为此,我通过Azure存储文件共享提供了这些文件。

相关问题