2014-04-28 2 views
0

Visual Studio로 처음으로 응용 프로그램의 설치 패키지를 만들려고합니다. 프로그램을 설치할 때 레지스트리 값을 변경해야합니다. 컴퓨터가 시작될 때마다 프로그램을 시작해야합니다.응용 프로그램을 설치할 때 레지스트리가 변경됨 C#

이것은 아주 간단한 작업입니까? 누군가가 나를 시도하고 달성하기 위해 뭔가를 향해 나를 가리킬 수 있을까. 는 등

+0

비주얼 스튜디오 설치 프로그램 패키지를 사용하고 있습니까 ??? –

+0

나는 프로그램을 사용한 적이 없지만 정상적인 방법이라면 그 프로그램을 사용할 것입니다. – JARRRRG

+0

나는 내가 조금 앞서서 달릴지도 모른다라고 생각한다. 아마 내가 먼저 가서 그것을 먼저주고 내가 어떻게 일어나는지 볼 필요가있을 것입니다. : E 나는 무엇을 다루고 있는지 확실히 모르겠다. – JARRRRG

답변

1

나는 내가 WIX을 사용하고 this 유래 질문에서 답을 수행하고있어, 같은 문제가 형태의와

지금까지 난 그냥 응용 프로그램을 가지고있다.

<?xml version="1.0" encoding="UTF-8"?> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> 

<Product Id="*" 
     Name="FooSetup" Language="1033" 
     Version="1.0.1.1" 
     Manufacturer="Foo Enterprise" 
     UpgradeCode="9235c293-2f08-4c2b-b7a5-69d01f5fca32"> 

    <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" /> 

    <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." /> 
    <MediaTemplate EmbedCab="yes" /> 


    <!-- Step 1: Define the directory structure --> 
    <Directory Id="TARGETDIR" Name="SourceDir"> 

     <Directory Id="ProgramFilesFolder"> 
      <Directory Id="INSTALLFOLDER" Name="FooSetup" /> 
     </Directory> 

     <Directory Id="ProgramMenuFolder"> 
      <Directory Id="ApplicationProgramsFolder" Name="Foo Application"/> 
     </Directory> 

     <Directory Id="DesktopFolder" Name="Desktop" /> 

    </Directory> 

    <!-- Step 2: Add files to your installer package & add autostart feature --> 
    <DirectoryRef Id="INSTALLFOLDER"> 

     <!-- The main executable file--> 
     <Component Id="FooApplication" Guid="3F122E60-3745-4AEB-ADA3-B90DCB87E0BD"> 
      <File Id="FooMainApp" Source="$(var.Foo.TargetPath)" KeyPath="yes"/> 
     </Component> 

     <!-- The main lib file--> 
     <Component Id="FooLib" Guid="83BEDB02-C9F5-4A06-B3D5-0A4D61D6A99C"> 
      <File Id="FooFileLib" Source="$(var.Foo.Lib.TargetPath)" KeyPath="yes"/> 
     </Component> 

     <!-- Register windows autostart registry --> 
     <Component Id="RegistryEntries" Guid="45C7AC46-1101-4301-83E1-D24392283A60"> 
      <RegistryValue Type="string" 
        Name="FooStartup" 
        Value="[#FooMainApp]" 
        Root="HKLM" 
        Key="Software\Microsoft\Windows\CurrentVersion\Run" 
        Action="write"/> 
     </Component> 
    </DirectoryRef> 

    <!-- Step 3: Add the shortcut to your installer package --> 

    <!-- Start Menu --> 
    <DirectoryRef Id="ApplicationProgramsFolder"> 
     <Component Id="FooShortcutMenu" Guid="3874D005-4E1C-4C0E-9CEA-8CD8D5442B60"> 
      <Shortcut Id="FooApplicationStartMenuShortcut" 
       Name="Foo Application" 
       Description="The Foo is Cool!" 
       Target="[#FooMainApp]" 
       WorkingDirectory="INSTALLFOLDER"/> 
      <RemoveFolder Id="ApplicationProgramsFolder" On="uninstall"/> 
      <RegistryValue Root="HKCU" Key="Software\Microsoft\FooApplication" Name="installed" Type="integer" Value="1" KeyPath="yes"/> 
     </Component> 
    </DirectoryRef> 

    <!-- Desktop Menu --> 
    <DirectoryRef Id="DesktopFolder"> 
     <Component Id="FooDesktopShortcutMenu" Guid="D4D0A2ED-C0DB-4524-AC53-D30F904DB846"> 
      <Shortcut Id="FooApplicationDesktopShortcut" 
       Name="Foo Application" 
       Description="The Foo is Cool!" 
       Target="[#FooMainApp]" 
       WorkingDirectory="INSTALLFOLDER" 
       Directory="DesktopFolder"/> 
      <RemoveFolder Id="DesktopFolder" On="uninstall"/> 
      <RegistryValue Root="HKCU" Key="Software\Microsoft\FooApplication" Name="installed" Type="integer" Value="1" KeyPath="yes"/> 
     </Component> 
    </DirectoryRef> 

    <!-- Tell Wix --> 
    <Feature Id="ProductFeature" Title="FooSetup" Level="1"> 
     <ComponentRef Id="FooApplication" /> 
     <ComponentRef Id="FooLib" /> 
     <ComponentRef Id="FooShortcutMenu"/> 
     <ComponentRef Id="FooDesktopShortcutMenu"/> 
     <ComponentRef Id="RegistryEntries" /> 
    </Feature> 
</Product> 
</Wix> 
+0

Thanks @ Adiono 나는 그것을 시도해 볼 것인데, 이것이 Product.wxs 파일에있는 것을 좀 더 이해할 수있게 해줄 것이라고 생각한다. – JARRRRG

+0

섹션에서 오류가 발생합니다. 나는 당신의 코드에서이 비트를 정말로 이해하지 못한다. 내가 TheNameofmyApp을 호출하고 FooFileLib과 var.MyAppName.Lib를 대체 할 때 "정의되지 않은 선행 처리기 변수 – JARRRRG

+0

이 생깁니다. lib 비트를 제거 했으므로 주 라이브러리 파일이없는 것 같아요. – JARRRRG

0

그것은 일반적으로 당신이 필요로하는, 당신은 설치 패키지를 만드는 데 사용되는 도구를 따라 달라집니다 당신이 (윈도우 XP & 윈도우 8.1에서 테스트) 관심을 가질만한 경우 여기 내 전체 WIX 작업 스크립트의, WIX에 새로운 해요 "AppPath" 당신도 할 수 있습니다

HKEY_CURRENT_USER \ 소프트웨어 \ 마이크로 소프트 \ 윈도우 \ CurrentVersion \ 실행 또는 Microsoft \ WINDOWS \ CurrentVersion을 \ 실행 "프로그램 응용"등의

\ HKEY_LOCAL_MACHINE \ 소프트웨어를

에서 문자열 값을 추가하려면 코드에서 regstry를 추가하여이를 달성하십시오.

관련 문제