在最新的BETA 4.37.11中,当使用FileVersionInfo.GetVersion时,它会引发异常“路径不合法。”
at 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(字符串 fileName)at System.Diagnostics.FileVersionInfo.GetVersionInfo(String fileName)
特别是在尝试使用试图调用的MvcMiniProfiler.ProfiledDbConnection时会发生这种情况
Version = FileVersionInfo.GetVersionInfo(typeof(MiniProfiler.Settings).Assembly.Location).ProductVersion;
在静态设置()ctor。
中使用4.31版本的LINQPad时,这样可以正常工作。在BETA中,程序集的Location属性显示为“”,而在4.31中它返回文件的正确路径。
要让它发挥作用的任何想法或解决方法?在我的剧本中,我已经习惯了新BETA的一些功能,并没有真正期待放弃它们。
还发现这个“包含清单的加载文件的位置。如果加载的文件是阴影复制的,则位置是阴影复制后的文件的位置。如果从字节数组加载程序集,例如,当使用Load(Byte [])方法时,Location是一个空字符串(“”)。“
想知道LINQPad Beta是否改变了加载程序集的方式?
答案 0 :(得分:1)
LINQPad确实改变了4.3x中加载程序集的方式(以避免在运行查询时锁定用户引用)。由于您描述的问题(程序集丢失其位置和CodeBase),机制在4.4x中更改,以便在LINQPad遮蔽它们时引用的程序集具有物理存在。尝试最新的测试版 - 它应该可以解决您的问题。