我正在开发一个C#Visual Studio应用程序,我正在使用config.txt文件。但是当应用程序安装在另一台机器上时,我如何找到config.txt文件路径,同时考虑到用户将在自定义路径(C:\ Folder X)上安装应用程序?
答案 0 :(得分:2)
如果配置文件与可执行文件位于同一目录中,则可以使用:
string exePath = Assembly.GetExecutingAssembly().Location;
string configFileName = "config.txt";
string configFilePath = Path.Combine(Path.GetDirectoryName(exePath), configFileName);
编辑:
GetExecutingAssembly()
应返回路径C:\Program Files\MyAddIn\your_plugin.dll
,因为它返回调用它的已加载程序集的实际路径。
由于情况并非如此,我们可以猜测MS Project实际上是在将dll复制到本地(也许是临时)目录之前加载它(....\AppData\Local\Assembly\...
路径)。
由于我不知道为什么和 如何 MS Project这样做,我认为最安全的方法是存储您的位置Addin文件夹安装到注册表中。如果您将其作为MSI发送,则应该很容易让安装程序添加包含插件文件位置的注册表项。如何做到这将取决于你如何构建你的MSI:vdproj?维克斯?
然后在你的插件的代码中,你可以读入注册表来获取你的路径。
答案 1 :(得分:0)
而不是使用文本文件,您可以使用.net设置来存储此应用的设置。
可以看到更多信息here
答案 2 :(得分:0)
如果配置文件与应用程序位于同一文件夹中,则可以使用Assembly.GetExecutingAssembly().Location