클라이언트의 레지스트리에는 실행 가능한 명령이 저장되어 있습니다. 문자열은 대상 경로 주위에 따옴표가있을 수도 있고 없을 수도 있으며 매개 변수가 있거나 없을 수도 있습니다. 예를 들어선택적 매개 변수와 따옴표가있는 명령 문자열에서 Path.GetDirectoryName 사용
는와 \ 경로 \ 파일 : spaces.exe와 \ 경로 \ 파일 C"PARAM1 = VALUE1 PARAM2 ="C는 : \ 경로 \ file.exe가"은 PARAM1 = VALUE1 PARAM2 =는
C를 값 2 : \ 경로 \ file.exe가 PARAM1 = VALUE1 PARAM2 =는
"C가 값 2 : \ 경로 \ 파일 이 .exe "
C : \ 경로 \ file.exe가
"C : spaces.exe "
는 값 2를 "
대상 경로의 디렉토리를 가져와야합니다 (예 : C:\path
).
Path.GetDirectoryName
을 시도했지만 "잘못된 문자가있는 경로"와 함께 실패합니다.- 나는 또한
ProcessStartInfo
개체를 만들려고했으나 문자열을 구문 분석하는 것이 현명하지 않은 것 같습니다. - 나는
Uri
으로 피봇을 쳤지 만 거기에는 행운이 없었습니다.
정규 표현식을 사용하여 솔루션을 만들었지 만 (이 내용은 답변으로 게시 할 예정입니다.) "이것이 꼭 있어야 할 것 같습니다."- Net-helper-class- for-this "문제.
클래스가 누락되었거나 올바르게 위의 클래스를 사용하지 않고 있습니까?
사이드 주제 ...이 레지스트리 키에 * anything *을 (를) 입력 할 수 있습니까? –
@Austin : 우리는 WiX 설치에서 사용자 지정 작업의 일부로 값을 필요로합니다. 문자열은 우리가 사용하던 이전 설치 관리자 소프트웨어에 의해 그곳에 배치됩니다. 따라서 다소 제한적이지만 위의 형식은 모든 가능성이 있습니다. 값이 유효한 명령 문자열이 아닌 경우를 처리하는 것에 대해 걱정하지 않습니다. 그것은 단지 실패 할 것이다. –