SQL Server CE 4 Clickonce部署VS2013

时间:2014-04-29 23:22:44

标签: visual-studio-2013 sql-server-ce

根据MS的说法,SQL Server CE已被弃用,但就目前而言,我真的无法考虑迁移到SQL Server Express或LocalDB,因此,在VS 2013上,有一个惊叹号文本"无法找到引导的先决条件"。有办法解决吗?部署我的程序时,需要自动安装SQL Server CE。

提前致谢

3 个答案:

答案 0 :(得分:3)

我遇到了同样的问题。我的项目的发布部分中的VS 2013先决条件列表中不存在SQL Server Compact Edition 4.0。为了解决同样的问题,我已经使用了下一步:

  1. Download install files for Microsoft® SQL Server® Compact 4.0 SP1
  2. 转到 C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v8.1A \ Bootstrapper \ Packages
  3. 在当前位置创建 SQL Server Compact Edition 4.0 文件夹
  4. 将下载的安装文件复制到创建的文件夹
  5. 在创建的文件夹中创建 product.xml 文件并复制此文件中的下一个代码
  6. <强> product.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <Product xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper" ProductCode="System.Data.SqlServerCe.4.0">
    <InstallChecks>
        <FileCheck Property="IsInstalled" 
            FileName="System.Data.SqlServerCe.dll" SearchPath="C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Desktop" />
      </InstallChecks>
    
      <PackageFiles CopyAllPackageFiles="false">
        <PackageFile
          Name="SSCERuntime_x86-ENU.exe"
          HomeSite="sqllocaldb_32" />
        <PackageFile
          Name="SSCERuntime_x64-ENU.exe"
          HomeSite="sqllocaldb_64" />
      </PackageFiles>
    
     <Commands Reboot="Defer">
        <Command PackageFile="SSCERuntime_x86-ENU.exe" Arguments="">
          <InstallConditions>      
            <FailIf Property="AdminUser" Compare="ValueEqualTo" Value="false" String="AdminRequired" />
            <BypassIf Property="ProcessorArchitecture" Compare="ValueNotEqualTo" Value="Intel" />
            <BypassIf Property="IsInstalled" Compare="ValueExists" Value="0" />
          </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="SSCERuntime_x64-ENU.exe" Arguments="" >
          <InstallConditions>
            <BypassIf Property="ProcessorArchitecture" Compare="ValueNotEqualTo" Value="amd64" />
            <BypassIf Property="IsInstalled" Compare="ValueExists" Value="0" />
          </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. 在创建的文件夹

    2. 中创建 en 文件夹
    3. en 文件夹中创建 package.xml 文件并复制此文件中的下一个代码:

    4. <强> package.xml中:

      <?xml version="1.0" encoding="utf-8" ?>
      <Package
        xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper"
        Name="DisplayName"
        Culture="Culture">
      
          <!-- Defines a localizable string table for error messages-->
          <Strings>
              <String Name="DisplayName">SQL Server Compact Edition 4.0</String>
              <String Name="Culture">en</String>
              <String Name="AdminRequired">Administrator permissions are required to install SQL Server Compact Edition 4.0. Contact your administrator.</String>
              <String Name="GeneralFailure">A failure occurred attempting to install SQL Server Compact Edition 4.0.</String>
          </Strings>
      </Package>
      
      1. 重新启动MS Visual Studio

      2. 您可以在先决条件

      3. 中找到 SQL Server Compact Edition 4.0

答案 1 :(得分:1)

如果由于某种原因您无法(直接)应用Erik的修复程序,那么您可以尝试以下解决方法:

  • 暂停 SQL Server Compact Edition 4.0引导程序包,您可能会在磁盘上找到它或者可以从同事那里获取它
  • 将该软件包安装在 C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v8.1A \ Bootstrapper \ Packages 文件夹中,因为VS2013使用此文件夹来查找引导程序包
  • 重启VS并且先决条件警告应该消失

答案 2 :(得分:0)

您可以简单地在您的应用中包含SQLCE dll文件,我有几篇关于如何执行此操作的博客文章