Winforms ClickOnce:自定义增压器包

Winforms ClickOnce:自定义增压器包,winforms,clickonce,bootstrapper,Winforms,Clickonce,Bootstrapper,我正在尝试为一个点击一次的应用程序创建一个定制的boostrapper包。我已将product.xml+msi包添加到一个文件夹(名为CCSdk),该文件夹是在C:\Program Files(x86)\Microsoft Visual Studio 14.0\SDK\Bootstrapper\Packages下创建的(我还将该文件夹复制到C:\Program Files(x86)\Microsoft SDK\ClickOnce Bootstrapper\Packages中)。我的product

我正在尝试为一个点击一次的应用程序创建一个定制的boostrapper包。我已将product.xml+msi包添加到一个文件夹(名为CCSdk),该文件夹是在C:\Program Files(x86)\Microsoft Visual Studio 14.0\SDK\Bootstrapper\Packages下创建的(我还将该文件夹复制到C:\Program Files(x86)\Microsoft SDK\ClickOnce Bootstrapper\Packages中)。我的product.xml文件非常简单,如下所示:

<Product xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper" ProductCode="CCSdk">  
  <RelatedProducts>  
    <DependsOnProduct Code=".NETFramework,Version=v4.5" />
  </RelatedProducts>  
<PackageFiles>  
    <PackageFile Name="PteidMW-Basic-64.msi"/>  
</PackageFiles>  
<InstallChecks>  
   <MsiProductCheck Property="IsMsiInstalled" Product="{824563DE-75AD-4166-9DC0-B6482F205284}"/>  
</InstallChecks>  
<Commands>  
    <Command PackageFile="PteidMW-Basic-64.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>

我的问题是,当我尝试在发布设置上添加先决条件时,仍然看不到自定义引导程序包

我错过了什么

谢谢


Luis

您可以尝试使用引导程序清单生成器生成包并比较输出吗?该工具显然已从MSDN中退役,但仍在此处可用:


在VS中很难做到的事情就是缺少“视觉”的地方。您可以通过从一个与您类似的现有引导程序开始来实现这一点。我推荐vcredist_x86,逐步增加它的功能。您可能会像我一样发现,en\package.xml文件是必需的。DisplayName是必需的。不过,还有更大的问题,您无法在ClickOnce安装中执行MSI。您可以进行安装检查,但用户必须进行下载和运行,因为MSI需要管理员权限。坏消息传得慢。