내 프로젝트에서 사용할 사용자의 라이센스 코드를로드하는 프로젝트에 사용자 지정 설치 방법이 있습니다. 코드는 다음과 같습니다 : 내가 실행하고있어 내 사용자는 지속적으로 다시 키 자신의 라이센스 코드를에서 "텍스트 상자 (A)"사용자 인터페이스 대화 나 '에가있는 그러나 상태인지내 VS Installer에서 컨텍스트 매개 변수를 미리로드하려면 어떻게해야합니까?
public override void Install(IDictionary stateSaver)
{
base.Install(stateSaver);
string targetDirectory = Context.Parameters["targetdir"];
string licenseCode = Context.Parameters["liccode"];
string exePath = string.Format("{0}prog1.exe", targetDirectory);
Configuration config = ConfigurationManager.OpenExeConfiguration(exePath);
config.AppSettings.Settings["LicenseCode"].Value = licenseCode;
config.Save();
}
추가되었습니다. 그래서 내가하고 싶은 것은 값이 저장되어있는 레지스트리를 읽고 저장된 값으로 설치 프로그램 화면을 미리 채 웁니다.
그래서 여기에 내가 시도한 것이 있지만 이것은 작동하지 않는 것 같습니다. 이벤트 체인의 올바른 지점에서 해고되지 않았기 때문일 것입니다.
protected override void OnBeforeInstall(IDictionary savedState)
{
RegistryKey key;
string baseKey = "SOFTWARE\\Test\\Prog1";
try
{
key = Registry.LocalMachine.OpenSubKey(baseKey, false);
Context.Parameters["liccode"] = key.GetValue("LicenseCode").ToString();
}
catch(Exception e)
{
}
base.OnBeforeInstall(savedState);
}
누구에게이 방법에 대한 제안이 있습니까?
사용자 지정 작업을 사용하지 않고, 라이센스 코드를 캡처하기위한 "텍스트 상자 (A)"대화 상자. 레지스트리 검색을 설정하고 속성을 볼 수 있지만 대화 상자에 해당 값을 미리 채우는 방법은 표시되지 않습니다. 거기에 어떤 생각? – SeaSharp
알겠습니다. – SeaSharp
그래서 Christopher Painter의 제안에 따라 레지스트리 검색을 설정했습니다. 그렇게함으로써, 그것은 나에게 속성 이름을 주었다. 그런 다음 User Dialog "EDIT1VALUE"속성에서 레지스트리 검색에서 [PROPERTYNAME]으로 설정했습니다. 빌라! – SeaSharp