C# 安装应用程序C时的注册表更改#

C# 安装应用程序C时的注册表更改#,c#,registry,installation,C#,Registry,Installation,这是我第一次尝试用VisualStudio为应用程序制作安装包。我有一个注册表值,需要在安装程序时更改。我需要在每次计算机启动时启动该程序 这是一项相当琐碎的任务吗?有没有人能给我指点方向,让我试着实现这一目标 到目前为止,我只使用了带有表单等的应用程序。我也有同样的问题,我正在使用并遵循Stackoverflow问题的答案。我也是WIX新手,如果您感兴趣,这里是我的完整WIX工作脚本(在Windows XP和Windows 8.1上测试): 这取决于用于创建安装包的工具,通常需要在下面添加字符

这是我第一次尝试用VisualStudio为应用程序制作安装包。我有一个注册表值,需要在安装程序时更改。我需要在每次计算机启动时启动该程序

这是一项相当琐碎的任务吗?有没有人能给我指点方向,让我试着实现这一目标


到目前为止,我只使用了带有表单等的应用程序。

我也有同样的问题,我正在使用并遵循Stackoverflow问题的答案。我也是WIX新手,如果您感兴趣,这里是我的完整WIX工作脚本(在Windows XP和Windows 8.1上测试):


这取决于用于创建安装包的工具,通常需要在下面添加字符串值

HKEY\ U当前\用户\软件\ Microsoft\Windows\CurrentVersion\Run或 HKEY\U本地\U计算机\Software\Microsoft\Windows\CurrentVersion\Run

如“AppName”:“AppPath”
您也可以通过在代码中添加regstry来实现这一点。

您使用的是Visual studio安装程序包吗?我从未使用过程序,但如果这是正常的方法,那么我将使用它。是的。我想我可能运行得有点太超前了。也许我需要先走一步,看看自己进展如何我不确定我在处理什么。谢谢@Adiono,我将尝试一下,我想这会让我更多地了解Product.wxs文件中的内容。我在第节中遇到一个错误。从你的代码中我真的不明白这一点。当我将其命名为NameOfMyApp并替换FooFileLib和var.MyAppName.Lib时,它会生成一个错误“未定义的预处理器变量。我最终删除了Lib位,我认为我没有主Lib文件。欢迎@Jagga。节取决于您要放置的项目(参考)在安装程序中。在我的应用程序中,我有两个项目引用到wix安装程序项目,它们是作为主应用程序的Foo(windows窗体应用程序)和作为主应用程序的Foo.Lib(类库)。
<?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>