Visual studio 2013 ClickOnce先决条件:SQL Server Express 2014 LocalDB在哪里?
我正在Visual Studio 2013社区版中为我的wpf应用程序创建clickonce安装程序。此应用程序使用localdb。如果我手动安装sqlserver express 2014 LocalDB,它在目标机器上运行良好 但我希望在clickonce部署中包含SQL Server Express 2014 LocalDB的安装程序 但是,当我打开“前提条件”对话框时,只有SQL Server 2012 Express LocalDB可用(见图)。我尝试选择“2012”,但它与安装程序放入数据文件夹的mdf文件不兼容 问题是:如何将SQL Server Express 2014 LocalDB安装程序作为先决条件?是否有办法将MSI文件放到某个地方并使其正常工作?还是更容易坚持“2012”Visual studio 2013 ClickOnce先决条件:SQL Server Express 2014 LocalDB在哪里?,visual-studio-2013,visual-studio-2015,clickonce,localdb,prerequisites,Visual Studio 2013,Visual Studio 2015,Clickonce,Localdb,Prerequisites,我正在Visual Studio 2013社区版中为我的wpf应用程序创建clickonce安装程序。此应用程序使用localdb。如果我手动安装sqlserver express 2014 LocalDB,它在目标机器上运行良好 但我希望在clickonce部署中包含SQL Server Express 2014 LocalDB的安装程序 但是,当我打开“前提条件”对话框时,只有SQL Server 2012 Express LocalDB可用(见图)。我尝试选择“2012”,但它与安装程序放
我也有同样的问题。我在MSDN论坛上找到了它,它似乎对我有用 总结一下链接中的答案:您必须为LocalDB 2014创建一个“引导程序”。这只是“MicrosoftSDK目录”中的一个文件夹,其中包含一些带有键/元数据的特定xml文件和一个eula文本文件。链接中的答案提供了这些xml文件的内容。重新启动visual studio后,“Sql Express 2014 LocalDB”将与所有其他先决条件一起出现,并且可以添加到ClickOnce依赖项中。正如我在上发布的那样,我创建了我自己的包,作为正式版本不存在。该包基本上只是更新为指向要下载的msi文件的新版本的
SqlLocalDB2012
包的副本
我已经打开了boostrapper软件包的所有文件,这样人们就不必自己创建文件了。有两个版本,一个用于原始版本,另一个用于SP1版本。以下是自己创建原始发布版本的步骤:
SqlLocalDB2014
product.xml
的文件夹中创建包含以下内容的xml文件:
<?xml version="1.0" encoding="utf-8"?>
<Product xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper" ProductCode="Microsoft.SqlServer.SqlLocalDB.12.0">
<InstallChecks>
<FileCheck
Property="sqllocaldbVersion"
FileName="sqlservr.exe"
SearchPath="Microsoft SQL Server\120\LocalDB\Binn"
SpecialFolder="ProgramFilesFolder"
/>
</InstallChecks>
<PackageFiles CopyAllPackageFiles="false">
<PackageFile
Name="x86\sqllocaldb.msi"
HomeSite="sqllocaldb_32"
PublicKey="3082010A0282010100E57C2F2D0CA9EC7AA834E04C3F7F490E0DB615AD1913DE528A26991571A962270737A5833082626C0BA3FD060D171406E6E0ADCC95960A205AA296E1E057303C5D629BC55D890CD034DFD9D8FA35EF11238BC0F9EB4AF439DA2F7110EB11B32C37A370E886173EEF2A46D08EC7B94800A137F1C7C8E7D21E6B4A2AF2C64C1D709F7CC368428E3CED811A52E33E32943D7E18F19BE44B5C11E4D6C3851E6C033073BCC9A8017D9DADD1F573F05B1A7B2F1F8B32BEB38EB53BD9F7FFF35FB3137C139357B8A05E359883A13434F2C5049FB9FE46170C91DFEF0F55F6ECCC39C96165A129EEBE11371BB76E4255C9CC35D152B303709C98349E2936A917195F0BBF0203010001"
/>
<PackageFile
Name="x64\sqllocaldb.msi"
HomeSite="sqllocaldb_64"
PublicKey="3082010A0282010100E57C2F2D0CA9EC7AA834E04C3F7F490E0DB615AD1913DE528A26991571A962270737A5833082626C0BA3FD060D171406E6E0ADCC95960A205AA296E1E057303C5D629BC55D890CD034DFD9D8FA35EF11238BC0F9EB4AF439DA2F7110EB11B32C37A370E886173EEF2A46D08EC7B94800A137F1C7C8E7D21E6B4A2AF2C64C1D709F7CC368428E3CED811A52E33E32943D7E18F19BE44B5C11E4D6C3851E6C033073BCC9A8017D9DADD1F573F05B1A7B2F1F8B32BEB38EB53BD9F7FFF35FB3137C139357B8A05E359883A13434F2C5049FB9FE46170C91DFEF0F55F6ECCC39C96165A129EEBE11371BB76E4255C9CC35D152B303709C98349E2936A917195F0BBF0203010001"
/>
</PackageFiles>
<Commands Reboot="Defer">
<Command PackageFile="x86\sqllocaldb.msi" Arguments="IACCEPTSQLLOCALDBLICENSETERMS=YES" EstimatedInstallSeconds="90">
<InstallConditions>
<FailIf Property="VersionNT" Compare="ValueNotExists" String="InvalidPlatformOS" />
<FailIf Property="VersionNT" Compare="VersionLessThan" Value="6.0.1" String="InvalidPlatformOS" />
<FailIf Property="AdminUser" Compare="ValueEqualTo" Value="false" String="AdminRequired" />
<BypassIf Property="ProcessorArchitecture" Compare="ValueNotEqualTo" Value="Intel" />
<BypassIf Property="sqllocaldbVersion" Compare="VersionGreaterThanOrEqualTo" Value="2014.120.2000.8" />
</InstallConditions>
<ExitCodes>
<ExitCode Value="0" Result="Success" />
<ExitCode Value="1641" Result="SuccessReboot" />
<ExitCode Value="3010" Result="SuccessReboot" />
<DefaultExitCode Result="Fail" String="GeneralFailure" FormatMessageFromSystem="true" />
</ExitCodes>
</Command>
<Command PackageFile="x64\sqllocaldb.msi" Arguments="IACCEPTSQLLOCALDBLICENSETERMS=YES" EstimatedInstallSeconds="90">
<InstallConditions>
<BypassIf Property="ProcessorArchitecture" Compare="ValueNotEqualTo" Value="amd64" />
<BypassIf Property="sqllocaldbVersion" Compare="VersionGreaterThanOrEqualTo" Value="2014.120.2000.8" />
</InstallConditions>
<ExitCodes>
<ExitCode Value="0" Result="Success" />
<ExitCode Value="1641" Result="SuccessReboot" />
<ExitCode Value="3010" Result="SuccessReboot" />
<DefaultExitCode Result="Fail" String="GeneralFailure" FormatMessageFromSystem="true" />
</ExitCodes>
</Command>
</Commands>
</Product>
C:\Program Files\Microsoft SQL Server\120\License Terms\License\u SqlLocalDB\u 1033.txt
文件复制到en
文件夹中,并将其重命名为eula.txt
SqlLocalDB2014
复制到其他引导程序软件包所在的位置,例如C:\Program Files(x86)\Microsoft SDK\Windows\v8.1A\bootstrapper\packages
package.xml
文件中指定的两个sqllocaldb.msi
文件,并将它们放在SqlLocalDb2014
文件夹中的x86
和x64
文件夹中package.xml
和eula.txt
文件如果要包含sqllocalDB安装文件,只需从package.xml文件中的链接下载它们。但是sqllocaldb_x64.msi似乎是错误的,它没有安装在x64 windows上(在Windows7 x64 sp1上测试) 谢谢你的回答。我想知道为什么SQL Server Express 2014 LocalDB没有“开箱即用”作为clickonce的先决条件。使用它会不会有一些“妙招”?@Angelo我不确定他们为什么不包括它,但我的感觉是clickonce是一种正在消亡的技术,所以微软不支持它。该软件包也不包括在VS2015 RC中。在我自己制作软件包之前,我提出了一个建议。请确保将文件复制到正确的软件包文件夹中。您的机器上可能有几个。对我来说,好消息是:“c:\Program Files(x86)\Microsoft SDK\ClickOnce Bootstrapper\Packages”。您可以在注册表\HKLM\Software\Wow6432Node\Microsoft\GenericBootstrapper\11中检查正确的路径。0@kjbartel您好,我想知道您是如何确定
PackageFile
参数的,比如homestite
和Name
?对于SqlLocalDb2017
@IstvanHeckl,我需要一个类似的解决方案。它们与package.xml文件中的字符串相同。您不希望直接在product.xml文件中包含字符串,因为不同语言的下载可能不同。我认为实际的名字本身并不重要,只要它们是相同的。我已将文件组织到单独的x84和x86文件夹中,但您可以在product.xml中重命名文件,例如sqllocaldb_x86.msi和sqllocaldb_x64.msi。
<?xml version="1.0" encoding="utf-8"?>
<Package Name="DisplayName" LicenseAgreement="Eula.txt" Culture="Culture" xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper">
<PackageFiles>
<PackageFile Name="Eula.txt" />
</PackageFiles>
<Strings>
<String Name="Culture">en</String>
<String Name="DisplayName">SQL Server 2014 Express LocalDB</String>
<String Name="sqllocaldb_32">http://download.microsoft.com/download/E/A/E/EAE6F7FC-767A-4038-A954-49B8B05D04EB/LocalDB%2032BIT/SqlLocalDB.msi</String>
<String Name="sqllocaldb_64">http://download.microsoft.com/download/E/A/E/EAE6F7FC-767A-4038-A954-49B8B05D04EB/LocalDB%2064BIT/SqlLocalDB.msi</String>
<String Name="AdminRequired">You do not have the permissions required to install SQL Server 2014 Express LocalDB. Please contact your administrator.</String>
<String Name="GeneralFailure">An error occurred attempting to install SQL Server 2014 Express LocalDB.</String>
<String Name="InvalidPlatformOS">The current operating system version does not support SQL Server 2014 Express LocalDB.</String>
<String Name="InvalidPlatformOSServicePack">The current operating system does not meet Service Pack level requirements for SQL Server 2014 Express LocalDB. Install the most recent Service Pack from the Microsoft download center at http://www.microsoft.com/downloads before continuing setup.</String>
</Strings>
</Package>