【发布时间】:2016-06-28 14:44:21
【问题描述】:
我编写了一个 .net 控制台应用程序,它使用 XML 文件将一组变量加载到应用程序中。
在测试期间,我使用存储在共享驱动器上的 UNC 文件路径对 .xml 文件的绝对路径进行了硬编码。 \\sharepath\config.xml
然而,现在,我们希望从 SSIS 调用 application.exe 文件,我们完全可以做到,我们继续在应用程序中使用硬编码路径,但是当我将其更改为相对路径 (config.xml)它失败了,因为它找不到配置文件。
有人知道为什么这不起作用吗? - 我已经阅读了一些关于 SSIS 工作目录的内容,但不确定是否由于某种原因,它是否在与使用 ssis 包中的执行应用程序任务指定的位置不同的位置运行 .exe 文件?
我基本上是在尝试避免将文件路径硬编码到应用程序中,以便我们可以将其更改为将来更改的文件共享名称。
谢谢
【问题讨论】:
-
在 all 应用程序中,您必须设置工作目录。如果您在
C:\并执行c:\somefolder\myapp.exe,您的工作目录是c:\,而不是c:\somefolder。最好的选择当然是将文件的路径作为参数传递,而不是对其进行硬编码。无论如何,请在Execute Task步骤中设置应用程序的工作目录 -
您好 Panagiotis,感谢您的输入,您是正确的,它是应用程序用作相对路径的工作目录。当我们将配置文件放在这个文件夹中时,它会读取它并按预期工作。 - 无法接受您在评论区的回答。