我一直试图获得以下任何一个目录:
我遇到了这个:
System.IO.Path.GetDirectoryName( System.Reflection.Assembly.GetExecutingAssembly().Location );
但我不确定它实际上向我展示了什么。
例如,我想要的文件夹是:
C:\Users\James\Documents\Visual Studio 2013\Projects\Test\Test.WebUI\Uploads
以上函数返回:
C:\Users\James\AppData\Local\assembly\dl3\1RC2V770.35T\WML2RQJT.GX5\9ebc1d95\b8f9a830_5676d001
这对我有帮助吗?
问题的背景是我正在运行实体框架播种器,需要访问启动项目文件夹结构。
答案 0 :(得分:1)
您看到的是.NET用于缓存的卷影副本文件夹。它在Windows注册表中HKCU\Software\Microsoft\Fusion\DownloadCacheLocation
下指定。 Shadow copying是.NET框架中的一项功能,允许在不卸载应用程序域的情况下更新应用程序域中使用的程序集。
有一个类似的问题here。
这就是您无法使用System.Reflection.Assembly.GetExecutingAssembly().Location
如果要更改/读取存储dll的目录,可能需要查看AppDomainSetup.ShadowCopyDirectories。
希望有所帮助