C# 获取dll的路径-原始路径,而不是阴影程序集

C# 获取dll的路径-原始路径,而不是阴影程序集,c#,C#,正如标题中所述,我正在寻找dll的路径,实际代码所在的位置。(用c#表示) 我试过了 System.Reflection.Assembly.GetExecutingAssembly.Location 及 但这两个都给了我使用dll的应用程序解决方案中dll文件的路径,也就是 C:\Users\Edan\repos\TestProgram\TestProgram\bin\Debug\FileSave.dll 我想去哪里 C:\Users\Edan\repos\FileSave\FileSave

正如标题中所述,我正在寻找dll的路径,实际代码所在的位置。(用c#表示)

我试过了

System.Reflection.Assembly.GetExecutingAssembly.Location

但这两个都给了我使用dll的应用程序解决方案中dll文件的路径,也就是

C:\Users\Edan\repos\TestProgram\TestProgram\bin\Debug\FileSave.dll
我想去哪里

C:\Users\Edan\repos\FileSave\FileSave\bin\Debug\FileSave.dll

默认情况下,VS会将所有引用的Dll复制到引用Dll的exe的生成文件夹中。这是因为.net默认情况下只搜索可执行文件所在的目录及其子目录。引用的DLL“FileSave.DLL”不知道其原始生成位置


您需要原始位置有什么原因吗

这是有道理的。我有一个SQLite数据库在那里,因为它是与之接口的dll,所以我认为把它放在那里是明智的。从不同的应用程序到数据库有多个入口点,需要包含相同的数据。在这种情况下,是否有更理想的位置?或者我可以强制应用程序也对数据库进行阴影处理,并以某种方式保持副本同步吗?你可以这样做。不过,我建议让调用应用程序显式或通过配置设置数据库位置。用户很难发现实用程序DLL控制自己的存储。如果要复制文件,可以使用生成步骤来完成,但是如果要共享文件,则应使用mklink,以便副本指向同一文件。
C:\Users\Edan\repos\FileSave\FileSave\bin\Debug\FileSave.dll