gpt4 book ai didi

c# - Bootstrap 、同步框架 2.1 - 先决条件

转载 作者:行者123 更新时间:2023-11-30 16:58:23 28 4
gpt4 key购买 nike

编辑: 经过更多搜索后,我找到了完成此操作的方法。我用了This preview page改变我的 Product.xml然后我复制了一些现有的 Product.xml 以检查它是否已经安装。

因此,我在我的系统和我的 C# 应用程序中成功地实现了 Sync Framework 2.1。但是,当我发布它并在未安装 Sync Framework 的另一台电脑上测试它时,它会出现错误所以我尝试在安装时包含 SyncSDK-v2.1-x86-ENU.msi。

搜索后我发现我需要将它添加到先决条件列表中(项目 -> 属性 -> 发布 -> 先决条件)

我试过点击关于 Creating Custom Packages 的链接.但是它仍然指向不再存在的 BMG( Bootstrap list 生成器)文件。

下一个解决方案是手动创建它,我认为我走在正确的道路上但无法完成它。我做了什么:

  • 下载 dotNetFx45_Full_x86_x64.exe 并将其放入:C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\Bootstrapper\Packages\DotNetFX45
  • 在 C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\Bootstrapper\Packages\中创建了一个名为 SyncFrame 的新文件夹
  • 添加了 Product.xml 并将 SyncSDK-v2.1-x86-ENU.msi 复制到 SyncFrame 文件夹。还添加了一个子文件夹“en”,在其中创建了一个 Package.xml 和一个 Eula.rtf 文件。
  • 在 VS2013 中,Project->Properties->Publish->Prerequisites 我选择了“从与我的应用程序相同的位置下载先决条件”。
  • 发布后,它成功地将“dotnetfx45”文件夹添加到包含 .exe 文件的发布文件夹中。这当然是因为我在先决条件选择框中选中了“Microsoft .NET Framework 4.5(x86 和 x64)”。

但是我仍然无法将 Sync Framework 2.1 放入先决条件选择框中。

这是我的(可能是垃圾)Product.xml:编辑:现在是解决我的问题的 Product.xml:

 <?xml version="1.0" encoding="utf-8" ?>
<Product
xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper"
ProductCode="Microsoft.Sample.EULA">
<!-- Defines the list of files to be copied on build. -->
<PackageFiles CopyAllPackageFiles="false">
<PackageFile Name="SyncSDK-v2.1-x86-ENU.msi"/>
</PackageFiles>

<InstallChecks>
<MsiProductCheck Product="IsMsiInstalled"
Property="{{4A3EAF2F-F950-4BF2-B0C7-857E0E970E5A}}"/>
</InstallChecks>

<!-- Defines how to run the Setup package.-->
<Commands >
<Command PackageFile = "SyncSDK-v2.1-x86-ENU.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="-1" Result="Fail" String="AU_Unaccepted" />
<DefaultExitCode Result="Fail"
FormatMessageFromSystem="true" String="GeneralFailure" />
</ExitCodes>
</Command>
</Commands>

我用过 How to create Product Manifest使这个...

这是我的 Package.xml

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

<PackageFiles>
<PackageFile Name="Eula.rtf"/>
</PackageFiles>

<Strings>
<String Name="DisplayName">Sync Framework 2.1</String>
<String Name="Culture">en</String>
<String Name="NotAnAdmin">You must be an administrator to install this package. </String>
<String Name="GeneralFailure">
A general error has occurred while
installing this package.
</String>
</Strings>
</Package>

一个小问题,但目前根本不是问题,我也使用 SQL 数据库,本地包含在项目和在线数据库中,我是否需要在先决条件选择框中选择更多先决条件。像 SQL Server Express 2012 localDB?编辑:

这工作正常,但我仍然想创建一个 product.xml,以便它自动从网站下载,而不是将其放在安装文件夹中。对于一个小应用程序来说,这有点让安装文件夹变大。

最佳答案

终于完成了基于bootstrappers for sync framework 2.0的bootstrapper

这里分别是包装和产品xml:

SyncFX20Core(x64) 的 product.xml

<?xml version="1.0" encoding="UTF-8"?>
<Product xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper" ProductCode="SyncFX20Core(x64)"/>

用于 SyncFX20Core(x64) 的 package.xml

<?xml version="1.0" encoding="utf-8"?>
<Package Name="DisplayName" LicenseAgreement="synchronizationeula_english.rtf" Culture="Culture" xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper">
<PackageFiles CopyAllPackageFiles="false">
<PackageFile Name="synchronizationeula_english.rtf" />
<PackageFile Name="Synchronization-v2.1-x64-ENU.msi" HomeSite="SyncFX21_64" PublicKey="3082010A0282010100BD72B489E71C9F85C774B8605C03363D9CFD997A9A294622B0A78753EDEE463AC75B050B57A8B7CA05CCD34C77477085B3E5CBDF67E7A3FD742793679FD78A034430C6F7C9BAC93A1D0856444F17080DF9B41968AA241CFB055785E9C54E072137A7EBCE2C2FB642CD2105A7D6E6D32857C71B7ACE293607CD9E55CCBBF122EBA823A40D29C2FBD0C35A3E633DC72C490B7B7985F088EF71BD435AE3A3B30DF355FB25E0E220D3E79A5E94A5332D287F571B556A0C3244EF666C6FF0389CEF02AD9AA1DD9807100E3C1869E2794E4614E0B98CD0756D9CAC009C2D42F551B85AF4784583E92E7C2BBB5DCD196128AD94430AC56A42FFB532AEA42922DE16E8D30203010001" />
</PackageFiles>
<Commands Reboot="Defer">
<Command PackageFile="Synchronization-v2.1-x64-ENU.msi" Arguments="/quiet" EstimatedInstallSeconds="80" EstimatedTempBytes="20000000">
<ExitCodes>
<ExitCode Value="0" Result="Success" />
<ExitCode Value="112" Result="Fail" String="DiskFull" />
<DefaultExitCode Result="Fail" String="Anunexpectedexitcodewasr" FormatMessageFromSystem="true" />
</ExitCodes>
</Command>
</Commands>
<Strings>
<String Name="Culture">en</String>
<String Name="DisplayName">SyncFX21Core (x64)</String>
<String Name="SyncFX21_64">http://download.microsoft.com/download/E/1/E/E1E636E6-AA5C-4052-9927-D722312DB564/Synchronization-v2.1-x64-ENU.msi</String>
<String Name="DiskFull">DiskFull</String>
<String Name="Anunexpectedexitcodewasr">An unexpected exit code was returned from the installer. The installation failed.</String>
</Strings>
</Package>

SyncFX20DatabaseProviders(x64) 的 product.xml

<?xml version="1.0" encoding="utf-8"?>
<Product ProductCode="SyncFX20DatabaseProviders(x64)" xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper">
<RelatedProducts>
<DependsOnProduct Code="SyncFX20Core(x64)" />
</RelatedProducts>
</Product>

SyncFX20DatabaseProviders(x64) 包

<?xml version="1.0" encoding="utf-8"?>
<Package Name="DisplayName" LicenseAgreement="databaseproviderseula_english.rtf" Culture="Culture" xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper">
<PackageFiles CopyAllPackageFiles="false">
<PackageFile Name="databaseproviderseula_english.rtf" />
<PackageFile Name="DatabaseProviders-v3.1-x64-ENU.msi" HomeSite="SyncFX21DatabaseProviders_64" PublicKey="3082010A0282010100BD72B489E71C9F85C774B8605C03363D9CFD997A9A294622B0A78753EDEE463AC75B050B57A8B7CA05CCD34C77477085B3E5CBDF67E7A3FD742793679FD78A034430C6F7C9BAC93A1D0856444F17080DF9B41968AA241CFB055785E9C54E072137A7EBCE2C2FB642CD2105A7D6E6D32857C71B7ACE293607CD9E55CCBBF122EBA823A40D29C2FBD0C35A3E633DC72C490B7B7985F088EF71BD435AE3A3B30DF355FB25E0E220D3E79A5E94A5332D287F571B556A0C3244EF666C6FF0389CEF02AD9AA1DD9807100E3C1869E2794E4614E0B98CD0756D9CAC009C2D42F551B85AF4784583E92E7C2BBB5DCD196128AD94430AC56A42FFB532AEA42922DE16E8D30203010001" />
</PackageFiles>
<Commands Reboot="Defer">
<Command PackageFile="DatabaseProviders-v3.1-x64-ENU.msi" Arguments="/quiet" EstimatedInstallSeconds="80" EstimatedTempBytes="20000000">
<ExitCodes>
<ExitCode Value="0" Result="Success" />
<ExitCode Value="112" Result="Fail" String="DiskFull" />
<DefaultExitCode Result="Fail" String="Anunexpectedexitcodewasr" FormatMessageFromSystem="true" />
</ExitCodes>
</Command>
</Commands>
<Strings>
<String Name="Culture">en</String>
<String Name="DisplayName">SyncFX21DatabaseProviders (x64)</String>
<String Name="SyncFX21DatabaseProviders_64">http://download.microsoft.com/download/E/1/E/E1E636E6-AA5C-4052-9927-D722312DB564/DatabaseProviders-v3.1-x64-ENU.msi</String>
<String Name="DiskFull">DiskFull</String>
<String Name="Anunexpectedexitcodewasr">An unexpected exit code was returned from the installer. The installation failed.</String>
</Strings>
</Package>

如果您需要更多详细信息或源文件,请随时与我联系...ameser@gmail.com

干杯!

关于c# - Bootstrap 、同步框架 2.1 - 先决条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25331096/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com