locked
Relative paths RRS feed

  • Question

  • We have a growing issue where we have a relative dtsconfig file (which stores the absolute base path of the ETL packages). This way we can keep the ETL projects failry portable - only having to modify one value in the dtsconfig file. The master package that defines the dtsconfig location (which is config/Default.dtsconfig) usually interpretates this location to be relative the project. The problem is that every now and again when you open this package in .NETStudio, the path is interpreted differently and causes: config/Default.dtsconfig  to state invalid path. But when we delete the variable (which defines the dtsconfig path), save/close and open/recreate it works again. This may or may not be supported MS method, but I was curious to know why this gets messed up. Is there somehwere in the .NET framework that defines what "/" is relatively under?

    For example: Our absolute config path is "D:\Program Files\Microsoft SQL Server\90\DTS\Packages\ETLProject\ETLBase\config\Default.dtsconfig" but using: "config/Default.dtsconfig" for xml file value works. However, sometimes we will get an error stating that this file cannot be found, and when we just try to delete (without saving and closing) and immediatelly try to put "config/Default.dtsconfig" again and hit next, we get an error and the path is now:

    'D:\Program Files\Microsoft SQL Server\90\DTS\Packages\DEVDataExchange\ETLBase\config\config\Default.dtsconfig'.

    Ideas?

    Thursday, March 30, 2006 5:08 PM

Answers

  • Relative paths cannot be used in SSIS. Many people complain about that but there is a rationale for it. If the package is stored in SQL Server, what would teh path be relative to?

     

    That's why absolute paths are used.

     

    -Jamie

     

     

    Thursday, August 30, 2007 4:05 PM

All replies

  • I got the same problem. I'm creating a set of packages that i would like to distribute to my customers. A lot of them don't like the idea of me creating environment variables on their server. Therefore I want to be able to use something like .\filename.dtsconfig as the path. This has worked fine for me, but from one moment to another it stopt working Sad... and I don't know why. I just get an error when I'm loading the ssis package that the .dtsconfig file can't be found. Strange thing is that I haven't changed a thing.

     

    Hope someone can help me out here. I really would like to use relative paths for my configuration file.

     

    Thanks,

     

    Matthijs

    Thursday, August 30, 2007 3:53 PM
  • Nope.  You must use absolute paths for reliability and consistency.  Create the environment variable and be done with it.  Mandate it! 
    Thursday, August 30, 2007 4:01 PM
  • Relative paths cannot be used in SSIS. Many people complain about that but there is a rationale for it. If the package is stored in SQL Server, what would teh path be relative to?

     

    That's why absolute paths are used.

     

    -Jamie

     

     

    Thursday, August 30, 2007 4:05 PM
  • Relative paths are currently possible. I've posted instructions here:
    http://www.artisconsulting.com/Blogs/tabid/94/EntryID/9/Default.aspx
    Sunday, July 13, 2008 9:29 PM
  •  furmangg wrote:
    Relative paths are currently possible. I've posted instructions here:
    http://www.artisconsulting.com/Blogs/tabid/94/EntryID/9/Default.aspx[/quote]

     

    I'm not sure this technique would work reliably with Execute Package tasks that fire off child packages...  And as Jamie noted, not with SQL Server based packages (but then you noted this in your blog post).

    Monday, July 14, 2008 3:46 PM