14

Visual Studio 2013 Topluluk sürümünden benim wpf uygulamam için bir clickonce yükleyicisi oluşturuyorum. Bu uygulama bir localdb kullanıyor. Eğer sqlserver express 2014 LocalDB'yi manuel olarak kurarsam, hedef makinelerde iyi çalışır.ClickOnce Önkoşullar: SQL Server Express 2014 LocalDB nerede?

Ancak, clickerce dağıtımımla SQL Server Express 2014 LocalDB için yükleyiciyi dahil etmek istiyorum.

Önkoşullar iletişim kutusunu açtığımda, yalnızca SQL Server 2012 Express LocalDB kullanılabilir durumdadır (resme bakın). '2012'yi seçmeyi denedim, ancak yükleyicimin veri klasörüne düştüğü mdf dosyasıyla uyumlu değil.

Sorun: SQL Server Express 2014 LocalDB yükleyicisini nasıl ön koşul olarak ekleyebilirim? MSI dosyasını bir yere bırakıp çalışmasını sağlamanın bir yolu var mı? Yoksa '2012 ile uğraşmak daha kolay olacak mı?

VS project prerequisites

cevap

15

MSDN forums numaralı telefona yaptığım gibi, resmi bir sürüm olmadığından kendi paketimi oluşturdum. Paket, temel olarak, indirilecek msi dosyalarının yeni sürümüne işaret etmek için güncellenen SqlLocalDB2012 paketinin bir kopyasıdır.

Dosyaların tümünü kendileri oluşturmak zorunda kalmamak için, boostrapper paketi için tüm dosyaları GitHub'a koydum. Orijinal sürüm için bir tane ve SP1 sürümü için bir tane olmak üzere iki versiyon var. adımları aşağıda özgün yayın sürümü kendiniz oluşturun: Within

<?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> 
  • :

    1. bir klasör SqlLocalDB2014
    2. aşağıdaki içeriği ile product.xml adlı klasörün içinde bir xml dosyası oluşturun klasör en adlı başka bir klasör oluşturun ve package.xml

      adlı başka bir xml dosyası oluşturun.
    3. C:\Program Files\Microsoft SQL Server\120\License Terms\License_SqlLocalDB_1033.txt dosyasını en klasörüne kopyalayın ve eula.txt'a yeniden adlandırın.

    4. Paketi yüklemek için SqlLocalDB2014 klasörünü diğer önyükleyici ambalaj paketlerinin bulunduğu yere kopyalayın örn.C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\Bootstrapper\Packages
    5. Artık Visual Studio'dan paketi kullanabilmeniz gerekir; ancak, bileşenin uygulamanızla aynı konumdan yüklenmesini istiyorsanız, package.xml dosyasında belirtilen iki sqllocaldb.msi dosyasını indirmeniz gerekir. SqlLocalDb2014 klasörüne x86 ve x64 klasörlerine koyun.
    6. Son olarak, bu paket yalnızca İngilizce içindir, ancak her dil için package.xml ve eula.txt dosyalarına klasör ekleyerek birden çok dili destekleyebilirsiniz.
  • +0

    Cevabınız için teşekkür ederiz. SQL Server Express 2014 LocalDB'nin neden bir tıkırtı önkoşulu olarak "kullanıma hazır bir kutu" eklenmediğini merak ediyorum. Bunu kullanarak bazı "gotcha" olabilir mi? – Angelo

    +0

    @Angelo Neden dahil etmediklerinden emin değilim, fakat duygularımın tıkırdayan bir teknoloji olduğunu, dolayısıyla MS'in desteklemediğini görüyorum. Paket, VS2015 RC'ye dahil değildir. [UserVoice] (http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/6186963-sql-server-2014-clickonce-bootstrapper-packages) ile ilgili bir öneride bulundum. Paket kendim – kjbartel

    5

    ben de tam olarak aynı sorunu yaşıyorum. MSDN forumunda one potential answer bulundu ve bana göre görünüyor.

    Bağlantıdan gelen yanıtı özetlemek için: LocalDB 2014 için bir "bootstrapper" oluşturmanız gerekir. Bu, "Microsoft SDKs dizininizde", bazı özel xml dosyaları içeren anahtar/meta veri ve bir eula içeren bir klasördür. Metin dosyası. Bağlantıdaki cevap, bu xml dosyaları için içerik sağlar. Görsel stüdyosunu yeniden başlattıktan sonra, diğer tüm önkoşullarla birlikte "Sql Express 2014 LocalDB" görünür ve ClickOnce bağımlılıklarına eklenebilir.

    İlgili konular