【发布时间】:2017-08-15 08:12:00
【问题描述】:
我正在开发 SolidWorks 插件 (DLL)。它取决于几个文件(sqlite DB、草图等)。要安装插件,您只需使用 SolidWorks 打开 DLL。
DLL 中有一些例程调用File.Open() 对我将通过相对路径引用的一些资源文件。目录。层次结构看起来像:
Plugin/
plugin.dll
Sketches/
various.sldprt
otherfile.db
otherdeps.txt
...
根目录在哪里。插件可以在系统上的任何位置。 SolidWorks 可以通过打开文件对话框轻松加载该插件。问题是,一旦我加载了 DLL,任何使用相对路径对File.Open()(例如File.Open("Sketches/various.sldprt"))的调用都将不起作用,因为它将是相对于目录的。 SLDWORKS.exe (软件安装目录)驻留在哪里而不是目录。的DLL。这意味着我必须将所有资源文件放在 SolidWorks 安装目录中,我想避免这种情况。这可能吗?
【问题讨论】:
-
一般性评论是“不要弄乱工作目录”!如果您尝试从代码中更改工作目录,则可能会破坏其他内容。 “工作目录”属于主可执行文件。我建议保持原样。你能看到你的插件相关文件是否在任何标准的“相对”目录中,例如 base_dir/plugins 等?然后,您可以尝试使用相对文件夹名称。
-
@Subbu 是的,我试图避免弄乱 SW 的工作目录,但相对路径没有按我的预期工作。为了清楚起见,我在深夜发布时编辑了我的帖子,对此感到抱歉
标签: c# visual-studio dll plugins solidworks