我正在构建自定义SSIS任务。在任务中,我运行了一些脚本。它们位于项目/子文件夹脚本/.
中现在问题是我从BIDS调试我的任务时:
Directory.GetCurrentDirectory();
返回:C:\Program Files (x86)\Microsoft Visual 9.0\Common7
但如果我从visual studio(使用DTExec)运行/调试,我得到:
C:\Users\nwadike\Documents\Visual Studio 2008\Projects\BloombergRequest\BloombergRequest\bin
现在,如果我使用:System.Reflection.Assembly.GetCallingAssembly().Location
,
我得到:C:\Windows\assembly\GAC_MSIL\BloombergRequest\versionNum\BBG.dll
我是否从SSIS或Visual studio调试......
基本上我正在寻找如何获得项目\ scripts \ 的相对路径....这怎么可能?
答案 0 :(得分:2)
SSIS中无法获取Visual Studio项目中特定文件夹的相对路径 - 这是有道理的,因为整个Visual Studio项目通常不会随包一起部署。并且,正如您所指出的,“当前目录”的概念没有帮助,因为它基于可执行文件的运行位置,而不是源代码所在的位置。
然而,有一种(某种)直接的解决方法。
$(SolutionDir)/project/scripts
作为参数传递; 或强> 答案 1 :(得分:-1)
使用:
Environment.CurrentDirectory