3

我正在尝试将自定义引导程序包添加到 Visual Studio 2010 中的 clickonce 安装,但该包未显示在先决条件菜单中。我在“C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages”目录中为我的包添加了一个文件夹。

我已经在 Visual Studio 中打开了我的 product.xml 和 package.xml 并且都没有显示任何错误。

我试图检查注册表以确认我将文件放置在正确的位置,但 HKLM\Software\Microsoft\GenericBootstrapper 和 HKCU\Software\Microsoft\GenericBootstrapper 都没有在注册表中。

添加文件后,我也尝试过完全重启。

这是我的 XML 文件:product.xml

<?xml version="1.0" encoding="utf-8" ?>
<Product
  xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper"
  ProductCode="RedemptionDLL">

  <RelatedProducts>
    <DependsOnProduct Code="Microsoft.Windows.Installer.3.1" />
  </RelatedProducts>

  <PackageFiles>
    <PackageFile Name="RedemptionDLL.msi"/>
  </PackageFiles>

  <Commands>
    <Command PackageFile="RedemptionDLL.msi" Arguments="">

      <InstallConditions>
        <BypassIf Property="IsMsiInstalled"
          Compare="ValueGreaterThan" Value="0"/>
        <FailIf Property="AdminUser" 
          Compare="ValueNotEqualTo" Value="True"
         String="NotAnAdmin"/>
      </InstallConditions>

      <ExitCodes>
        <ExitCode Value="0" Result="Success"/>
        <ExitCode Value="1641" Result="SuccessReboot"/>
        <ExitCode Value="3010" Result="SuccessReboot"/>
        <DefaultExitCode Result="Fail" String="GeneralFailure"/>
      </ExitCodes>
    </Command>
  </Commands>
</Product>

包.xml

<?xml version="1.0" encoding="utf-8" ?>
<Package
  xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper"
  Name="DisplayName"
  Culture="Culture"

  <Strings>
    <String Name="DisplayName">RedemptionDLL</String>
    <String Name="Culture">en</String>
    <String Name="NotAnAdmin">You must be an administrator to install this package.  Please contact your administrator.</String>
    <String Name="GeneralFailure">A general error has occurred while 
installing this package.</String>
  </Strings>
</Package>
4

4 回答 4

2

我能够通过使用 Bootstrapper Manifest Generator 工具生成 xml 而不是手动来解决这个问题。

于 2011-03-30T20:10:45.967 回答
1

在您的 product.xml 文件中,您永远不会向我们展示您正在使用的产品代码。它位于文件的最顶部,如下所示:

<Product xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper"
 ProductCode="Your.Product.Code">

请记住,对于每个引导程序包,产品代码必须是唯一的。如果两个引导程序具有相同的产品代码,那么在先决条件列表中只会显示其中一个。

如果您通过从另一个引导程序复制并粘贴该产品文件然后更改与您相关的值来获得该产品文件,那么您可能没有更改产品代码,因此您新添加的包不会被注册.

这发生在我身上。我从另一个引导程序中获取了我的 product.xml 和 package.xml 文件,然后只是编辑它们以用于我的目的,但我忽略了产品代码,我的包从未出现在先决条件对话框中。一旦我返回并将产品代码更改为新的唯一值,它就会出现。

于 2012-07-31T19:45:40.510 回答
0

我有一个类似的问题,花了我很长时间才意识到我已经命名了我的package.xml文件product.xml

于 2014-10-25T14:04:36.973 回答
0

像其他人暗示的那样,您的 XML 文件的任何格式错误都会导致它不会显示在先决条件清单中。我的 XML 文件开头有一个空格;删除后它出现了。

于 2015-02-11T04:36:44.540 回答