5

実行中のアセンブリの作業ディレクトリを取得するための次の方法のうち、ベストプラクティスと見なされる推奨事項はありますか?開発者から、昇格されたアクセス許可(管理者として実行)で実行しない限り、 Windows 7SP164ビットでメソッド1が失敗することがあると聞きまし。ただし、方法2は常に機能します。前者が時々失敗する理由はありますか?

方法1:

System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly.Location())

方法2:

Environment.CurrentDirectory
4

1 に答える 1

6

Environment.CurrentDirectory作業ディレクトリを取得するための方法です。リフレクションの使用もおそらく遅くなります。

ただし、注意してください。2つの方法は同じではありません。方法Aは、アセンブリが保存されているディレクトリを常に返しEnvironment.CurrentDirectoryます。現在の作業ディレクトリは、アプリケーションの存続期間中に変更されるEnvironment.CurrentDirectory可能性があり、作業の設定にも使用できます。ディレクトリや他の方法でも変更される可能性があります(ファイルを開く/保存するダイアログなど)。

于 2012-01-20T10:29:46.040 に答える