0

ExeConfigurationFileMapクラスのOpenMappedExeConfigurationメソッドを使用して構成ファイルを開いています。設定ファイルは、同じディレクトリ内の2つのプログラムによって使用されます。

開発マシンではすべて正常に動作していますが、プログラムを別のマシンにコピーすると、プログラムの実行中にこのエラーが発生します

Code not find a part of the path D:\email\email.config

他のプログラムはemail.configファイルに簡単にアクセスできます。すべてが1つのディレクトリですが、他のプログラムは私の開発マシンの古いパスを指しています:(

これが例外をスローするコードの一部です

class Program
    {
        static readonly string configFileName = "email.config";

        static int Main(string[] args)
        {
            try
            {
                var configMap = new ExeConfigurationFileMap { ExeConfigFilename = configFileName };
                Configuration externalConfig = ConfigurationManager.OpenMappedExeConfiguration(configMap, ConfigurationUserLevel.None);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                return 1;
            }
        }
    }
4

1 に答える 1

4

プロジェクト(構成ファイルを含む)でそのパスを検索してみましたか?それは確かにどこかに書かれるでしょう、あなたはそれを見つける必要があります...

編集:私はあなたの問題が何であるかを理解しました、私は あなたのプログラムが検索しているパスがあなたのコードまたはあなたの構成ファイルのD:\emailどこかから来ていると言っているだけです。プロジェクトで「D:」を検索してみてください。Visual Studioでコマンド(ctrl + shift + f)を使用し、[このファイルの種類を確認する]ボックスで必ず指定してください。find in files*.*

2番目の編集

いいえ、コードでも構成ファイルでもパスを指定していません。

私が提案したようにパスを検索しようとした場合(まだ検索していない場合は検索してください)、ターゲットマシンの構成ファイルを確認してください。そのパスはどこかに書かれているので、どこを見つける必要があります。そのためには、何らかのツールを使用する必要があります(Windowsのファイル検索でも可能です)。

于 2009-07-20T07:26:02.673 に答える