2009-06-04 2 views
2

У меня есть приложение winform, которое устанавливается ClickOnce, и мне нужно иметь возможность включать удаленные подключения в sqlexpress по умолчанию.Настройка пакета Package.xml для SQL Express ClickOnce Pre-Requisite install?

Кроме того, мне нужно убедиться, что локальный пользователь имеет доступ к экземпляру SQL. Как отредактировать файл манифеста?

Мое приложение является частью топологии репликации слиянием. Я унаследовал DAL и до тех пор, пока не изменил его, я не могу переключиться на SQL CE из-за ограничений SProc.

SQL Express - это ClickOnce (возможность) и по умолчанию используется в VS2008 как необходимое условие.

Ниже приведено Product.xml пакета загрузочного буфера SQL Express. Как я могу изменить это, чтобы выполнить то, что мне нужно? Кто-нибудь еще должен был это изменить? Here is an example of this.

<Command PackageFile="sqlexpr32.exe" Arguments="-q /norebootchk /qn reboot=ReallySuppress addlocal=all instancename=SQLEXPRESS SQLAUTOSTART=1 ADDUSERASADMIN=1" EstimatedInstalledBytes="225000000" EstimatedInstallSeconds="420"> 
<InstallConditions> 
<BypassIf Property="SQLExpressInstalled" Compare="ValueEqualTo" Value="0"/> 
<BypassIf Property="VersionNT" Compare="VersionLessThan" Value="5.1"/> 
<FailIf Property="AdminUser" Compare="ValueEqualTo" Value="false" String="AdminRequired"/> 
<FailIf Property="Version9x" Compare="ValueExists" String="InvalidPlatformXP"/> 
<FailIf Property="VersionNT" Compare="VersionLessThan" Value="5.1.2" String="InvalidPlatformXP"/> 
<FailIf Property="ProcessorArchitecture" Compare="ValueNotEqualTo" Value="Intel" String="InvalidPlatformArchitecture"/> 
</InstallConditions> 
<ExitCodes> 
<ExitCode Value="0" Result="Success"/> 
<ExitCode Value="1641" Result="SuccessReboot"/> 
<ExitCode Value="3010" Result="SuccessReboot"/> 
<ExitCode Value="50037" Result="Fail" String="MissingMSXml"/> 
<ExitCode Value="50251" Result="Fail" String="MissingMSXml"/> 
<ExitCode Value="50198" Result="Fail" String="InsufficientHardware"/> 
<ExitCode Value="50236" Result="Fail" String="InsufficientHardware"/> 
<ExitCode Value="50222" Result="Fail" String="InvalidPlatformOSServicePacks"/> 
<ExitCode Value="70003" Result="Fail" String="InvalidPlatformOSServicePacks"/> 
<ExitCode Value="50247" Result="Fail" String="InvalidPlatformIE"/> 
<ExitCode Value="50248" Result="Fail" String="InvalidPlatformIE"/> 
<ExitCode Value="70004" Result="Fail" String="AnotherInstanceRunning"/> 
<ExitCode Value="70032" Result="Fail" String="BetaComponentsFailure"/> 
<ExitCode Value="70033" Result="Fail" String="InvalidPlatformArchitecture"/> 
<DefaultExitCode Result="Fail" FormatMessageFromSystem="true" String="GeneralFailure"/> 
</ExitCodes> 
</Command> 

Благодарю всех за это время.

ответ

0

SQL Server - это сервис. По-видимому, теоретически можно установить службу с щелчком один раз, см. here и here.

Я подозреваю, что установка SQL Express одним щелчком мыши невозможна, поскольку это технология для развертывания изолированных приложений. SQL-сервер работает рядом с металлом и вряд ли будет работать в песочнице.

SQL Compact is another story и является более подходящим способом развертывания приложения с кликом после его базы данных.

Или позвольте приложению ссылаться на базу данных на другом сервере.

EDIT: И если у меня возникли все ваши проблемы (и это однократное приложение на клиентской рабочей станции с уже имеющимся SQL Express), вам необходимо включить удаленные подключения this way. Есть обрывки доказательств того, что SAC tool can be used делает это программно.

+1

Спасибо, что нашли время для публикации. SQL Express можно не только развернуть в Clickonce, но и является одним из загрузочных загрузок по умолчанию, доступным в VS2008. Я нахожусь в топологии репликации слияния, поэтому я не могу использовать «другой сервер», а SQL Compact не поддерживает SProcs, и пока у меня не будет возможности переписать DAL в качестве библиотеки LINQ, я вынужден спустить этот путь. –

+0

Установив SQL, вы действительно имеете в виду, что это предварительный запрос? Ну, есть эта страница: http://msdn.microsoft.com/en-us/library/bb264562.aspx#emsqlexcustapp_topic4 В ней говорится, что вы можете сразу сказать, что SQL Express является обязательным условием, но все же кажется, что Для части установки SQL Express потребуются права администратора - очень unclick once-ish. Если вы правы, я могу установить SQL Server на заблокированную корпоративную рабочую станцию, которая будет абсолютно потрясающей. Я попробую. – MatthewMartin

+0

yup, вот что я делаю. Указание на то, что это приложение для моего приложения. Он устанавливается просто отлично, хотя пользователи являются администраторами собственных систем. –

1

SQL Express Edition по-прежнему является базой данных сервера. Он работает все время как услуга и, как и любая база данных серверного класса, любит много ресурсов. Это просто не очень хороший выбор для локального настольного приложения.

Если вам нужна одна пользовательская база данных, используйте что-то вроде SQL Server Compact Edition, Sqlite или даже Access. Я сомневаюсь, что вы оценили бы это, если бы вы установили настольное приложение только для того, чтобы найти его, перетащив полный сервер sql install вместе с ним.

+0

Спасибо, что нашли время для публикации. SQL CE, к сожалению, не является вариантом на данный момент, поскольку он не поддерживает SProcs. Я планировал удалить наш слой DAL и заменить его LINQ, но у меня так далеко. –

0

Если ваш пакет.xml не играет в мяч, и вы хотите, чтобы гораздо более простое решение для настольных компьютеров Firebird могло быть для вас вариантом, вы можете конвертировать PDF с сервера sql, хранимые процедуры могут оставаться таким образом. Если бы я преобразовал все мои sprocs в Linq, я бы сошел с ума, не говоря уже о тестировании ... Когда преобразование должно быть известно, например. хрустальные отчеты или другие сторонние утилиты, которые считывают данные с вашего сервера. доказательство необходимости в концептуальной работе. Но, развернувшись, и теперь вижу, что он не работает даже на свежих настройках W7, я согласен с этими чувствами. Локальная БД не выглядит хорошо для нас, так как наши периферийные утилиты жестко закодированы. \ И это необходимо (localdb) \

Смежные вопросы