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

贾格

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

这是一项相当琐碎的任务吗?有人可以指出我要尝试实现的目标。

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

阿迪诺

我有同样的问题,我使用WIX,并按照从回答这个#1的问题。我也是WIX的新手,如果您感兴趣的话,这是我完整的WIX工作脚本(在Windows XP和Windows 8.1上进行了测试):

<?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>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

沙箱注册表应用程序

来自分类Dev

在Windows注册表中注册应用程序

来自分类Dev

从已安装的Web应用程序可靠地读取注册表

来自分类Dev

在沙盒中安装应用程序以检测Windows注册表操作

来自分类Dev

安装VB.net应用程序时如何在注册表中写入值?

来自分类Dev

删除应用程序注册表是否安全?

来自分类Dev

当许多应用程序服务器和单独的JVM时如何使用JVM RMI注册表

来自分类Dev

datagrid中的转换表-简单类注册表应用程序

来自分类Dev

在C中更改注册表值

来自分类Dev

WIX:如何在不使用注册表搜索的情况下检测是否安装了第三方应用程序?

来自分类Dev

如何在Webpack构建的应用程序中导入不在npm注册表上的库?

来自分类Dev

运行时错误:应用程序注册表尚未准备好

来自分类Dev

在注册表中找不到应用程序“ org.eclipse.cdt.managedbuilder.core.headlessbuild”

来自分类Dev

如何使用Docker Hub注册表部署到Azure Web应用程序容器

来自分类Dev

在注册表中找不到应用程序“ org.eclipse.ui.ide.workbench”

来自分类Dev

在32位应用程序中访问64位注册表

来自分类Dev

如何确定应用程序使用哪个注册表值?

来自分类Dev

Windows 10在其注册表中存储默认电子邮件应用程序的位置

来自分类Dev

在骆驼应用程序中使用自定义注册表

来自分类Dev

在Windows 10注册表中设置默认的pdf查看器应用程序?

来自分类Dev

注册表验证,用户名是否已经存在?(Java Web 应用程序)

来自分类Dev

如何在 Web 应用程序部署期间在注册表中添加新的时区?

来自分类Dev

在 runFullTrust 模式下从 UWP 应用程序访问注册表值

来自分类Dev

从注册表C#读取值

来自分类Dev

C#写入注册表

来自分类Dev

从注册表C#获取参数

来自分类Dev

从注册表C#读取值

来自分类Dev

使用C#安装程序创建注册表项的正确方法

来自分类Dev

通过Windows注册表安装Chrome扩展程序

Related 相关文章

  1. 1

    沙箱注册表应用程序

  2. 2

    在Windows注册表中注册应用程序

  3. 3

    从已安装的Web应用程序可靠地读取注册表

  4. 4

    在沙盒中安装应用程序以检测Windows注册表操作

  5. 5

    安装VB.net应用程序时如何在注册表中写入值?

  6. 6

    删除应用程序注册表是否安全?

  7. 7

    当许多应用程序服务器和单独的JVM时如何使用JVM RMI注册表

  8. 8

    datagrid中的转换表-简单类注册表应用程序

  9. 9

    在C中更改注册表值

  10. 10

    WIX:如何在不使用注册表搜索的情况下检测是否安装了第三方应用程序?

  11. 11

    如何在Webpack构建的应用程序中导入不在npm注册表上的库?

  12. 12

    运行时错误:应用程序注册表尚未准备好

  13. 13

    在注册表中找不到应用程序“ org.eclipse.cdt.managedbuilder.core.headlessbuild”

  14. 14

    如何使用Docker Hub注册表部署到Azure Web应用程序容器

  15. 15

    在注册表中找不到应用程序“ org.eclipse.ui.ide.workbench”

  16. 16

    在32位应用程序中访问64位注册表

  17. 17

    如何确定应用程序使用哪个注册表值?

  18. 18

    Windows 10在其注册表中存储默认电子邮件应用程序的位置

  19. 19

    在骆驼应用程序中使用自定义注册表

  20. 20

    在Windows 10注册表中设置默认的pdf查看器应用程序?

  21. 21

    注册表验证,用户名是否已经存在?(Java Web 应用程序)

  22. 22

    如何在 Web 应用程序部署期间在注册表中添加新的时区?

  23. 23

    在 runFullTrust 模式下从 UWP 应用程序访问注册表值

  24. 24

    从注册表C#读取值

  25. 25

    C#写入注册表

  26. 26

    从注册表C#获取参数

  27. 27

    从注册表C#读取值

  28. 28

    使用C#安装程序创建注册表项的正确方法

  29. 29

    通过Windows注册表安装Chrome扩展程序

热门标签

归档