Use reflection to get the path to your executable - then as long as your .ini is in the same folder as the executable (or somehwere relative to it) you won't run into this problem anymore:
static public string AssemblyDirectory
{
get
{
string codeBase = Assembly.GetExecutingAssembly().CodeBase;
UriBuilder uri = new UriBuilder(codeBase);
string path = Uri.UnescapeDataString(uri.Path);
return Path.GetDirectoryName(path);
}
}
or
Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)
See this SO post for more info