使用MiniMvcProfiler时,BETA LINQPad,FileVersionInfoGetVersionInfo引发错误

时间:2012-04-12 19:43:10

标签: assemblies linqpad

在最新的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是否改变了加载程序集的方式?

1 个答案:

答案 0 :(得分:1)

LINQPad确实改变了4.3x中加载程序集的方式(以避免在运行查询时锁定用户引用)。由于您描述的问题(程序集丢失其位置和CodeBase),机制在4.4x中更改,以便在LINQPad遮蔽它们时引用的程序集具有物理存在。尝试最新的测试版 - 它应该可以解决您的问题。