Properties.Settings에 저장된 응용 프로그램 이름을 사용하여 응용 프로그램을 시작하려고 할 때 이상한 동작이 나타납니다. 사용하기 전에 값 (같은 값으로 값)을 다시 설정하지 않으면 실행 된 응용 프로그램이 해당 응용 프로그램 설정에 대한 올바른 위치를 얻지 못합니다. 아마 코드를 보여주는 것이 내가 말하는 것을 정리할 것입니다.Properties.Settings의 값을 사용하는 StartProcess가 비정상적인 결과를 초래합니다.
다음은 새 프로세스를 시작하는 코드입니다. 꽤 똑바로 앞으로 물건.
private void StartNewApplication()
{
Process mainAppProcess = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = Properties.Settings.Default.TheApplicationPath;
startInfo.WindowStyle = ProcessWindowStyle.Normal;
mainAppProcess.StartInfo = startInfo;
mainAppProcess.Start();
mainAppProcess.WaitForExit();
}
표준 OpenFileDialog에서 파일을 탐색하여 설정을 간단히 설정하는 또 다른 기능이 있습니다. 나는 조각을 제외하고, 그 여기에서 보여주는 귀찮게하지 않습니다
if (fileDialog.ShowDialog().Value == true)
{
Properties.Settings.Default.TheApplicationPath = fileDialog.FileName;
Properties.Settings.Default.Save();
}
(내가 통제 할 수 없음) 실패 된 코드를 뭔가 같은 :
private static string GetConfigFolder()
{
string configFolder = ConfigurationManager.AppSettings.Get("ConfigFolder");
configFolder = Path.GetFullPath(configFolder);
return string.IsNullOrEmpty(configFolder) ? Environment.CurrentDirectory : configFolder;
}
appSettings는 값이기 때문에 항상 되돌아옵니다. ", Path.GetFullPath 호출은 현재 디렉토리를 반환합니다. Properties.Setting 값을 다시 설정하지 않으면 응용 프로그램을 시작하는 프로그램의 경로입니다. 설정을 다시 설정하면 실행 된 응용 프로그램의 경로입니다.
아이디어가 있으십니까?
감사합니다, WTS
알아두기. 그러나 여기의 문제는 기본 설정이 "업데이트 된"설정과 정확히 동일하다는 것입니다. 기본 설정에 저장된 경로를 찾아 선택합니다. –
비슷한 일이 있었지만 구체적인 것을 기억할 수는 없습니다. 응용 프로그램 설정에 대해 생성 된 파일을보고 특성에 예기치 않은 기본값이 없는지 확인하십시오. 내 문제는 설정 디자이너와 코드 비하인드가 일치하지 않는 것과 관련이있었습니다. – Jay
필자는 값을 다시 설정하고 Watch 윈도우에서 String.Compare를 수행하기 전후에 모두 0을 실행하여 실행했습니다. –