Я ищу способ определения в WiX, если SQLLocalDB установлен или нет. Как я могу это сделать? - Могу ли я проверить ключ реестра? - Когда да, какой ключ?Определите, установлен ли SqlLocalDB
ответ
RegistrySearch должен это сделать:
<Property Id="LOCALDB">
<RegistrySearch Id="SearchForLocalDB" Root="HKLM"
Key="SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL11E.LOCALDB\MSSQLServer\CurrentVersion"
Name="CurrentVersion"
Type="raw" />
</Property>
Что бы получить вам версию.
В MSDN, свойства AppSearch должны быть общедоступными. http://msdn.microsoft.com/en-us/library/windows/desktop/aa367579%28v=vs.85%29.aspx и предупреждение ICE52. –
Да, слишком много времени в Bundles. :) Исправлена. –
Проверка в реестре может не работать постоянно, если пользователь удаляет localDb, тогда записи реестра все еще могут существовать.
Вот функция, я использую, чтобы определить установку LocalDB из командной строки -
internal static bool IsLocalDBInstalled()
{
// Start the child process.
Process p = new Process();
// Redirect the output stream of the child process.
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.Arguments = "/C sqllocaldb info";
p.StartInfo.CreateNoWindow = true;
p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
p.Start();
// Do not wait for the child process to exit before
// reading to the end of its redirected stream.
// p.WaitForExit();
// Read the output stream first and then wait.
string sOutput = p.StandardOutput.ReadToEnd();
p.WaitForExit();
//If LocalDb is not installed then it will return that 'sqllocaldb' is not recognized as an internal or external command operable program or batch file.
if (sOutput == null || sOutput.Trim().Length == 0 || sOutput.Contains("not recognized"))
return false;
if (sOutput.ToLower().Contains("mssqllocaldb")) //This is a defualt instance in local DB
return true;
return false;
}
- 1. Определите, установлен ли планшет Windows 8
- 2. Определите, установлен ли веб-сайт cookie
- 3. Определите, может ли быть установлен Silverlight
- 4. Определите, установлен ли Google Earth (в Windows)
- 5. Определите, у кого установлен флажок.
- 6. Определите, был ли установлен том NTFS за пределами
- 7. Определите, установлен ли пакет с помощью API Yum Python?
- 8. Определите, был ли установлен контекст прокси-объекта объекта
- 9. Определите, установлен ли сертификат с помощью CN (через powershell 2.0)?
- 10. Определите, установлен ли dot.net 4.5 и установите его, если нет
- 11. Развертывание SqlLocalDb 2012 с помощью Installshield
- 12. Отсутствующие экземпляры в sqllocaldb info
- 13. Определите, установлено ли расширение Chrome
- 14. Sqllocaldb - может ли db быть перемещен другим пользователем/машиной?
- 15. Есть ли способ создать экземпляр sqllocaldb в C#?
- 16. Вложение SqlLocalDb в сценарий установки NSIS
- 17. Определите, открыт ли NSMenu
- 18. Определите, существуют ли соседи?
- 19. Определите, используется ли метка
- 20. Определите, произошло ли соединение.
- 21. Определите, работает ли процесс?
- 22. Определите, активен ли процесс
- 23. Определите, пересекаются ли круги.
- 24. Определите, включен ли LTE?
- 25. Определите, возможно ли AJAX?
- 26. Определите, нажата ли клавиша
- 27. Определите, опустилось ли меню
- 28. Определите, завершен ли процесс?
- 29. Определите, работает ли процесс
- 30. Определите, ожидалось ли задание
http://msdn.microsoft.com/en-us/library/hh215237.aspx – ErikEJ
Лично я предпочитаю чтобы проверить подключение к экземпляру базы данных, а затем связать себя с конкретным экземпляром/версией. –
@christopher painter - как я могу сделать это в WiX, чтобы решить установить LocalDB или нет? – BennoDual