Мое приложение Visual Studio 2010 (C #) работает, и я пытался развернуть его с помощью проекта установки всю эту неделю, но безуспешно.
Я начал с веб-блога Стива Ласкера по Частное развертывание SQL Server Compact с помощью ADO.NET Entity Provider . Он заставил меня изменить файл 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 уже установлен (например, MY только для ПК).
Я подошел поближе к статье и заметил, что она была написана в 2008 году, но Дэвид V оставил комментарий со ссылкой на SQL CE Team статью Устранение неполадок: частное развертывание поставщика ADO.NET Entity Framework (System.Data.SqlServerCe.Entity.dll) SQL Server Compact 3.5 с пакетом обновления 2 (SP2) в папке приложения не работает . В своей статье они сказали, что мне нужно добавить «перенаправление привязки сборки» (плохая ссылка) и добавить файл 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 для временного имени файла, которое изменяется:
ОТЛАДКА: Ошибка 2727: запись каталога '_1083472CD2EB47548297E3336FCD9A58' не существует в таблице каталога
Что мне с этим делать?
Кто-нибудь успешно развернул Microsoft SQL CE Server SP2 для частного экземпляра?