应用程序配置WinForm . net 4私有部署SQL Server CE SP2



我的Visual Studio 2010 (c#)应用程序正在工作,这周我一直在尝试使用安装项目来部署它,但没有成功。

我开始跟随Steve Lasker的关于使用ADO私下部署SQL Server Compact的Web博客。. NET实体提供程序。它让我修改项目的app.config文件,包括以下内容:

  <system.data>
    <DbProviderFactories>
      <remove invariant="System.Data.SqlServerCe.3.5"></remove>
      <add name="Microsoft SQL Server Compact Data Provider"
           invariant="System.Data.SqlServerCe.3.5"
           description=".NET Framework Data Provider for Microsoft SQL Server Compact"
           type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=3.5.1.50, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
    </DbProviderFactories>  
  </system.data>

该安装仅在已经安装了SQL Server CE的PC上成功运行(如MY PC)。

我仔细看了看这篇文章,发现它写于2008年,但是David V留下了一条评论链接到SQL CE团队的文章Troubleshooting: private部署SQL Server Compact 3.5 SP2 ADO。应用程序文件夹中的. NET实体框架提供程序(System.Data.SqlServerCe.Entity.dll)不起作用。在他们的文章中,他们说我必须添加"程序集绑定重定向"(错误链接),并在我的app.config文件中添加以下信息:

  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Data.SqlServerCe" publicKeyToken="89845dcd8080cc91" culture="neutral"/>
        <bindingRedirect oldVersion="3.5.1.0-3.5.1.50" newVersion="3.5.1.50"/>
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

所以,这里我有一个不安装的安装程序。

  <?xml version="1.0"?>
  <configuration>
    <appSettings>
      <add key="LastRun" value=""/>
      <add key="UserName" value=""/>
    </appSettings>
    <startup useLegacyV2RuntimeActivationPolicy="true">
      <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client"/>
    </startup>
    <system.data>
      <DbProviderFactories>
        <remove invariant="System.Data.SqlServerCe.3.5"></remove>
        <add name="Microsoft SQL Server Compact Data Provider"
             invariant="System.Data.SqlServerCe.3.5"
             description=".NET Framework Data Provider for Microsoft SQL Server Compact"
             type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=3.5.1.50, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
      </DbProviderFactories>  
    </system.data>
    <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
          <assemblyIdentity name="System.Data.SqlServerCe" publicKeyToken="89845dcd8080cc91" culture="neutral"/>
          <bindingRedirect oldVersion="3.5.1.0-3.5.1.50" newVersion="3.5.1.50"/>
        </dependentAssembly>
      </assemblyBinding>
    </runtime>
  </configuration>

我的app.config文件损坏了吗?

我的应用程序仍然运行良好,但安装程序无法安装任何东西。安装程序的错误总是2727的临时文件名更改:

DEBUG:错误2727:目录条目'_1083472CD2EB47548297E3336FCD9A58'不存在

我该怎么办?

是否有人成功地为私有实例部署了Microsoft SQL CE Server SP2 ?

在Code Project上找到了一个名为创建SQL Compact私有安装的解决方案,解决了我的问题。

基本上,看起来这一切都归结为一个事实,即VS安装程序没有创建文件夹或复制SSCE所需的文件。上面的链接详细介绍了如何做到这一点。

最新更新