을 설정합니다. 제거시 다시 설정해야하는 값이있는 특정 키 아래에 레지스트리 값을 설정하고 싶습니다. 내 프로그램의 오래된 가치.VS 설치 프로젝트 - 사용자 지정 작업으로 레지스트리 값 설정 (다시) 내 프로그램 설치 중에
protected override void OnBeforeInstall(IDictionary savedState) {
var originalCommand = Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Classes\myKey\Shell\Open\Command", null, "");
Registry.SetValue(@"HKEY_CURRENT_USER\Software\myProgram\OriginalCommand", null, originalCommand);
Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Classes\myKey\Shell\Open\Command", null, "new value");
base.OnBeforeInstall(savedState);
}
protected override void OnAfterRollback(IDictionary savedState) {
ResetRegistryEntries();
base.OnAfterRollback(savedState);
}
protected override void OnAfterUninstall(IDictionary savedState) {
ResetRegistryEntries();
base.OnAfterUninstall(savedState);
}
private void ResetRegistryEntries() {
var originalCommand = Registry.GetValue(@"HKEY_CURRENT_USER\Software\myProgram\OriginalCommand", null, "");
Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Classes\myKey\Shell\Open\Command", null, originalCommand);
}
이 이상한 일들이 처음 .. 이제이 있습니다 : 나는 비주얼 스튜디오를 통해 설치하는 경우 (오른쪽 내 설치 프로젝트를 클릭하고 설치) 모든 것이 잘 작동 .. 나의 새로운 가치 나 사용자 지정 작업과 함께이 문제를 해결하려 설정되어 있고 이전 값이 내 "백업"레지스트리 키에도 설정되어 있습니다. 모든 항목을 제거하면 제거해야합니다. 하지만 .. 만든 된 .msi 파일을 통해 설치하면 이전 값은 내 백업 레지스트리 키에 설정되어 있지 않습니다 ..하지만 새로운 가치는 .. 그리고 매우 stange 건 .. 내가 모든 것을 재설치하면 .. 재설정 왜 .. 그리고 왜 어디에서.