我正在尝试将自定义引导程序包添加到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>
package.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>
答案 0 :(得分:2)
我能够通过使用Bootstrapper Manifest Generator工具生成xml而不是手工完成来解决这个问题。
答案 1 :(得分:1)
在product.xml文件中,您从未向我们展示您正在使用的产品代码。它位于文件的最顶层,看起来像这样:
<Product xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper"
ProductCode="Your.Product.Code">
请记住,对于每个引导程序包,产品代码必须是唯一的。如果两个bootstrappers具有相同的产品代码,则只有其中一个将显示在先决条件列表中。
如果您通过从另一个引导程序复制并粘贴该产品文件然后更改与您相关的值来获取该产品文件,则可能是您没有更改产品代码,因此您新添加的软件包不会注册。
这发生在我身上。我从另一个引导程序中获取了我的product.xml和package.xml文件,然后编辑它们以实现我的目的,但我忽略了产品代码,我的软件包从未出现在先决条件对话框中。一旦我回去并将产品代码更改为新的,唯一的值,就会出现。
答案 2 :(得分:0)
我有类似的问题,花了我一个年龄才意识到我已将package.xml
文件命名为product.xml
答案 3 :(得分:0)
与其他暗示的一样,任何有关您的XML文件的错误信息都会导致它无法显示在先决条件清单中。我在XML文件的开头有一个空格;在删除之后它出现了。