0

最新のベータ4.37.11では、FileVersionInfo.GetVersionを使用すると、「パスが正当な形式ではありません」という例外がスローされます。

System.IO.Path.NormalizePath(String path、Boolean fullCheck、Int32 maxPathLength)at System.IO.Path.GetFullPathInternal(String path)
at System.IO.Path.GetFullPath(String path)at System.Diagnostics.FileVersionInfo.GetFullPathWithAssert (String fileName)at System.Diagnostics.FileVersionInfo.GetVersionInfo(String fileName)

具体的には、これは、呼び出しようとするMvcMiniProfiler.ProfiledDbConnectionを使用しようとしたときに発生します。

Version = FileVersionInfo.GetVersionInfo(typeof(MiniProfiler.Settings).Assembly.Location).ProductVersion;

静的Settings()ctorで。

これは、LINQPadの4.31ビルドを使用する場合に正常に機能します。ベータ版では、アセンブリのLocationプロパティは ""のように見えますが、4.31ではファイルへの適切なパスを返します。

これを機能させるためのアイデアや回避策はありますか?私のスクリプトには、私が慣れ親しんできた新しいベータ版のいくつかの機能があり、まだそれらをあきらめることを本当に楽しみにしていません。

また、この「マニフェストを含むロードされたファイルの場所。ロードされたファイルがシャドウコピーされた場合、場所はシャドウコピーされた後のファイルの場所です。アセンブリがバイト配列からロードされた場合。 Load(Byte [])メソッドを使用すると、Locationは空の文字列( "")です。 "

LINQPad Betaがアセンブリのロード方法を変更したかどうか疑問に思いますか?

4

1 に答える 1

1

LINQPadは、4.3xでアセンブリをロードする方法を変更しました(クエリの実行中にユーザー参照がロックされないようにするため)。あなたが説明する問題(アセンブリがLocationとCodeBaseを失う)のために、メカニズムは4.4xで変更され、LINQPadがそれらをシャドウするときに参照されるアセンブリが物理的に存在するようになりました。最新のベータ版を試してください-問題が解決するはずです。

于 2012-04-13T07:46:23.040 に答える