我有一个库DLL,它将输出文件保存到D Drive(库中的HardCoded Path) 如果用户没有PC中的驱动器,应用程序将崩溃。
我们可以做任何事情,以便DLL开始保存到所需的路径而不是HardCoded 一种解决方案是插入一个pendrive并将其标记为D:它可以工作,但这不是一个好的解决方案
任何建议\解决方案将不胜感激
P.S。 DLL是用C#编写的。 感谢。
答案 0 :(得分:2)
如果要编辑原始库以将路径更改为更合适的路径,或者甚至更广泛地更改方法,则可以使用dnSpy。
在反编译代码中,导航到硬编码值的方法,然后在上下文菜单中单击Edit Method
并执行更改。
然后转到File-> Save Module...
以保存已编辑的程序集。
您还可以使用dnSpy
调试崩溃的应用程序,以找到发生异常的确切位置。
根据版本和混淆等内容,您的里程可能会有所不同。
答案 1 :(得分:2)
在我的评论中,我建议使用符号链接(或符号链接),但在反射时只有在D驱动器存在时才有效 - 即您可以重定向D驱动器上不存在的文件夹只要D驱动器存在,就可以存在于C驱动器上的那个。
还有另一种选择 - SUBST命令。 SUBST将驱动器号与路径相关联。例如:
subst d: c:\MyRealFolder
以上内容会将D
驱动器的请求重定向到MyRealFolder
驱动器上的C
文件夹。