在最新的 BETA 4.37.11 中,使用 FileVersionInfo.GetVersion 时会引发异常“路径不是合法形式”。
在 System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength) 在 System.IO.Path.GetFullPathInternal(String path)
在 System.IO.Path.GetFullPath(String path) 在 System.Diagnostics.FileVersionInfo.GetFullPathWithAssert (字符串文件名)在 System.Diagnostics.FileVersionInfo.GetVersionInfo(字符串文件名)
特别是在尝试使用尝试调用的 MvcMiniProfiler.ProfiledDbConnection 时会发生这种情况
Version = FileVersionInfo.GetVersionInfo(typeof(MiniProfiler.Settings).Assembly.Location).ProductVersion;
在静态 Settings() ctor 中。
这在使用 LINQPad 的 4.31 版本时工作正常。在 BETA 中,程序集的 Location 属性显示为“”,而在 4.31 中,它返回文件的正确路径。
有什么想法或解决方法可以让它发挥作用吗?在我的脚本中,我已经习惯了新 BETA 的一些功能,并且还没有真正期待放弃它们。
还找到了这个“包含清单的加载文件的位置。如果加载的文件是影子复制的,则位置是影子复制后的文件的位置。如果程序集是从字节数组加载的,例如当使用 Load(Byte[]) 方法,Location 是一个空字符串 ("")。
想知道 LINQPad Beta 是否改变了它加载程序集的方式?