레지스트리 키를 삭제 한 후 C#에서 레지스트리 키를 다시 작성하려고합니다.방금 삭제 한 레지스트리 키를 다시 만드는 중 오류가 발생했습니다.
가끔 오류 얻을". 잘못된 작업을 삭제 표시가 된 레지스트리 키에서 시도"
을
다시 작성하기 전에 지연을 넣으려고했으나 도움이되지 않았습니다.
팁이 있습니까?
레지스트리 키를 삭제 한 후 C#에서 레지스트리 키를 다시 작성하려고합니다.방금 삭제 한 레지스트리 키를 다시 만드는 중 오류가 발생했습니다.
가끔 오류 얻을". 잘못된 작업을 삭제 표시가 된 레지스트리 키에서 시도"
을
다시 작성하기 전에 지연을 넣으려고했으나 도움이되지 않았습니다.
팁이 있습니까?
여전히 키에 대해 열린 핸들이 있으므로 삭제 표시가되어 있어도 아직 제거되지 않았습니다. 따라서 키를 참조하는 핸들을 닫을 수 있습니다. 더 좋으면 핸들을 먼저 삭제하지 않고 수정할 수 있습니다.
described on TechNet으로, 이것은 키에 열린 핸들이있는 경우 발생합니다. 모든 핸들이 닫히면 키가 삭제되고 다시 생성 될 수 있습니다.
다시 작성하기 전에 Close()
키에 대한 모든 참조가 필요합니다. 그것은 아직 삭제되지 않은
marked for deletion.
:
는 여기에 중요한 어구입니다! 분명히 다시 만들 수는 없지만 (기존의) 기존 키와 충돌합니다. C# 개체를 닫거나 플러시하는 것은 문제가 아닙니다. 레지스트리 자체를 플러시하도록 운영 체제를 확신시켜야합니다. 내가 확실하게 알고있는 유일한 방법은 컴퓨터를 다시 시작하는 것입니다.
지금은 OS가 삭제를 완료하지 못하게하는 것이 귀하의 프로그램 일 수 있습니다. 하지만 또 다시 뭔가있을 수 있습니다.
이것은 올바르지 않습니다 (단, 마지막 문장이 가까워짐). OP는 단순히 키에 대한 열린 핸들을 가지고 있으므로 아직 파기 할 수 없습니다. –
닫기()에 대한 MSDN 페이지에서 : "키를 닫고 내용이 수정되면 디스크로 플러시합니다." –