我正在使用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")
)的调用都不会起作用,因为它与dir相关。其中SLDWORKS.exe
(SW安装目录。)驻留而不是dir。的DLL。这意味着我必须将所有资源文件放在SolidWorks安装目录中,我希望避免使用。这可能吗?
答案 0 :(得分:1)
您可以执行的操作是在调用File.Open()之前将addin文件夹添加为任何本地路径的前缀。 Addin文件夹可以获得:
string path = System.IO.Path.GetDirectoryName(
System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase );