3

わかりました。いくつかの Winform プロジェクトを Framework 4.0 から Framework 4.5 に移動していますが、クラス ライブラリから実行可能パスを見つけようとして問題が発生しています。エラーをログに記録するために使用するエラー ログ クラスがあります。コードのスニペットは次のとおりです。

using System;
using System.IO;
using System.Windows.Forms;

namespace FunctionClassLibrary
{
    public static class ErrorLogging
    {
        public static string errLogFullPath
        {
            get
            {
                string errLogFile = "Application";
                m_errLogFullPath = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), errLogFile + "_ErrorLog.txt");
                return m_errLogFullPath;
            }
        }
    }
}

ご覧のとおり、Application.ExecutablePath プロパティを公開する System.Windows.Forms 名前空間を参照できます。Framework 4.5 では、System.Windows.Forms 名前空間を参照できなくなったようです。私は午前中ずっとグーグルで検索してきましたが、うまくいきませんでした。これら 2 つの MSDN リンク: LINK1LINK2は両方とも、System.Windows.Forms 名前空間を使用した例を示しています。私の質問は、この問題の回避策を持っている人はいますか?

**アップデート**

わかりました、私は頭がおかしくなっています。Environment.GetFolderPath メソッドを使用して、CommonProgramFiles フォルダーを見つけることができることに気付きました。みなさん、朝からお騒がせしてすみません。

4

2 に答える 2

5

Directory.GetCurrentDirectory()またはAppDomain.CurrentDomain.BaseDirectory代わりに使用できます:

Path.Combine(Directory.GetCurrentDirectory(), 
                 errLogFile + "_ErrorLog.txt");

または:

Path.Combine(AppDomain.CurrentDomain.BaseDirectory, 
                 errLogFile + "_ErrorLog.txt");
于 2012-10-06T16:20:30.453 に答える
2
Path.Combine(Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location),errLogFile + "_ErrorLog.txt");
于 2012-10-06T16:25:14.933 に答える