2011-01-31 7 views
1

..NET app.config 파일은 사용하지 않는 것이 혼합 모드 CLR2 어셈블리를 사용하는 CLR4 응용 프로그램이기 때문에 내 애플은 .exe.config에서 <strong>useLegacyV2RuntimeActivationPolicy</strong> 필요

우리의 응용 프로그램을 시작 메뉴에서 시작할 때 좋지만, 사용자가 우리의 응용 프로그램과 관련된 파일 유형 중 하나를 클릭하여 응용 프로그램을 시작하면 app.config 파일을 읽지 않고 이러한 CLR2 어셈블리의로드가 실패합니다.

추가 조사에 따르면 ShellExecute는 (응용 프로그램 폴더가 지정된 경우에도) .config 파일을 읽지 않지만 WinExec은 읽는 것으로 나타납니다. 나는 Shell이 ​​ShellExecute를 사용하여 파일 연결을 통해 응용 프로그램을 시작한다고 가정합니다.

주 앱의 프로세스를 시작하기 전에 현재 폴더를 설정하는 중간 앱을 작성하는 것 외에 다른 해결 방법이 있습니까? 이것은이 사이트의 다른 곳에서 제안되었습니다.

미리 감사드립니다.

답변

0

파일 연결 레지스트리 설정이 짧은 파일 이름이 아니라 긴 파일 이름을 사용하는지 확인하십시오. 예를 들어 command 값은 긴 파일 이름을 사용하여 문서를 열어야합니다.

HKEY_CLASSES_ROOT\MyFile.Document\shell\open\command

내 생각 엔 응용 프로그램을 시작하고 그 다음 찾을 실패 app.config 파일을 해결하기 위해 짧은 이름을 사용하려고 할 때 Windows가 긴 이름에 짧은 파일 이름을 확장하지 않습니다.

편집 : app.config의 이름을 레지스트리에있는 짧은 이름으로 바꾸어 내 이론을 확인한 다음 효과가있었습니다. 이름이 바뀐 app.config 파일을 제거하면 다시 손상됩니다.