C# 如何将QBFC13_0.msm添加到Clickonce
在网上似乎没有关于如何做到这一点的分步过程记录在案。如果有人提到它,它的文档记录非常糟糕,我无法遵循他们建议的复杂路径。C# 如何将QBFC13_0.msm添加到Clickonce,c#,clickonce,qbfc,C#,Clickonce,Qbfc,在网上似乎没有关于如何做到这一点的分步过程记录在案。如果有人提到它,它的文档记录非常糟糕,我无法遵循他们建议的复杂路径。 我是ClickOnce的新手,我已经能够在用户机器上正确安装我的c程序,但是当然我没有注册22E88GD7-FB0B-B905-CCA6BD526B52类,这意味着我相信QBFC13没有安装在用户机器上。我的客户不希望在ClickOnce之外使用标准QB安装程序单独一次性安装QBFC,他希望将其作为ClickOnce的一部分。它真的那么复杂,文件记录也很差吗?我所看到的所有谷
我是ClickOnce的新手,我已经能够在用户机器上正确安装我的c程序,但是当然我没有注册22E88GD7-FB0B-B905-CCA6BD526B52类,这意味着我相信QBFC13没有安装在用户机器上。我的客户不希望在ClickOnce之外使用标准QB安装程序单独一次性安装QBFC,他希望将其作为ClickOnce的一部分。它真的那么复杂,文件记录也很差吗?我所看到的所有谷歌搜索和stackoverflow条目都没有给出一个简单或完全的方法,让新手可以做到。救命啊 ClickOnce安装在当前用户的上下文中进行。如果当前用户不是管理员,则无法在环境中安装任何需要注册的内容。所以你所问的可能不是直接可能的 您可以尝试在应用程序中安装一个小助手应用程序,该应用程序能够注册组件/执行安装程序,并在可能的情况下让ClickOnce应用程序以管理员权限执行该应用程序。然而,只有当用户在机器上真正拥有管理员权限时,这才有效
即使您在ClickOnce安装之前安装了先决条件,管理员也必须先执行该先决条件,计算机上的任何用户才能执行。在ClickOnce部署中,我们可以添加先决条件。在这种情况下,如果您添加QBFC.exe包,那么它将自动从部署服务器安装到客户端计算机中。 要将QBFC作为先决条件添加,它应该添加到C:\ProgramFilesx86\Microsoft SDK\Windows\v8.0A\Bootstrapper\Packages中 在部署服务器中。 有一种XML用于命名对流。 但是,简单的方法是使用 引导程序清单生成器软件
谢谢。在VS2012中,您需要添加一个先决条件项目属性->发布->先决条件 但是,默认情况下,QBFC不在列表中,因此需要使用Microsoft的Bootstrapper清单生成器来创建您自己的清单。不幸的是,这是错误和混乱。下面是您的做法: 新建项目-选择包清单 项目名称-此清单项目的“保存”名称位于此处 在树中,alt单击Package,然后添加安装文件-浏览到.msi或.exe
ex: C:\Users\{username}\AppData\Local\Downloaded Installations\{C7896CDC-45FF-49E1-A23D-68FA13A910A5}\QBFC 11.0.msi
显示名称-将在Visual Studio中显示的名称
ex: QuickBooks Foundation Classes v11.0
属性选项卡-不需要,跳过
系统检查-单击第一个图标“文件检查”
Result属性-步骤3中要测试的文件属性
ex: Name
要搜索的文件名-选择与步骤3相同的文件
在特殊文件夹中开始搜索-将其与步骤6.2匹配
ex: AppDataFolder
ex: \Local\Downloaded Installations\{C7896CDC-45FF-49E1-A23D-68FA13A910A5}
路径-将其与步骤6.2匹配
ex: AppDataFolder
ex: \Local\Downloaded Installations\{C7896CDC-45FF-49E1-A23D-68FA13A910A5}
安装条件选项卡
类型-旁路IF
属性-从步骤6.1中选择标识符
比较-存在
价值-不适用
退出代码选项卡
退出代码-0
结果-成功
保存您的工作,然后构建CTRL+SHIFT+B
“生成结果”对话框-单击“生成输出”链接
将整个文件夹移动/复制到:
[VS2012] C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\Bootstrapper\Packages\
重新启动Visual Studio,您的新先决条件将出现在列表中!
现在,只需在项目属性->发布->先决条件下选择它。。。出版
以下是我为QBFCv11生成的工作product.xml:
<?xml version="1.0" encoding="utf-8"?>
<Product ProductCode="Intuit.QBFCv11" xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper">
<PackageFiles CopyAllPackageFiles="false">
<PackageFile Name="qbfc 11.0.msi" PublicKey="3082...0001" />
</PackageFiles>
<InstallChecks>
<FileCheck Property="Name" SpecialFolder="ProgramFilesFolder" SearchPath="Local\Downloaded Installations\{C7896CDC-45FF-49E1-A23D-68FA13A910A5}" FileName="QBFC 11.0.msi" />
</InstallChecks>
<Commands Reboot="Defer">
<Command PackageFile="qbfc 11.0.msi">
<InstallConditions>
<BypassIf Property="Name" Compare="ValueExists" Value="N/A for ValueExists and ValueNotExists" />
</InstallConditions>
<ExitCodes>
<ExitCode Value="0" Result="Success" />
<DefaultExitCode Result="Fail" String="Anunexpectedexitcodewasr" FormatMessageFromSystem="true" />
</ExitCodes>
</Command>
</Commands>
</Product>
谢谢您的回答,但问题是让发布过程将.msm文件插入到必备文件中。目前,有关该主题的所有Microsoft文档都是错误的、不起作用的或没有正确的文档。实际安装第一次点击安装程序或启动程序后,按照您的意见安装没有问题。我卡在同一个地方添加QBFC,你找到解决方案了吗请帮助!