2011-04-05 1 views
5

Можете ли вы заставить Silverlight работать только вне браузера?Можете ли вы заставить Silverlight работать только вне браузера?

EDIT: Причина, по которой я прошу, заключается в том, что многие функции Silverlight работают только с OOB. Если мое приложение зависит от этого, мне нужно либо потребовать приложения Silverlight для запуска в этом режиме, либо выбрать что-то еще.

+0

как приложение wpf? –

+0

серьезно, хотя, почему бы не установить wpf и clickonce? –

+0

@Nathan: Можно ли установить clickonce также установить требуемую платформу .NET? – AnthonyWJones

ответ

4

из http://blogs.microsoft.co.il/blogs/alex_golesh/archive/2010/03/15/silverlight-4-quick-tip-out-of-browser-improvements.aspx

Дополнительная функция существует с новой моделью OOB является возможность установки приложения не из веб-страницы (как это было с 3-й версии), но из командной строки (имея XAP файл доступен). У Silverlight 4 OOB-пусковая установка есть новые параметры командной строки для установки, удаления и выполнения приложения в «режиме эмуляции» - без его установки.

Например. установить приложение на рабочем столе с помощью следующей команды:

"%ProgramFiles(x86)%\Microsoft Silverlight\sllauncher.exe" /overwrite /install:"X:\PACKAGE_LOCATION\SL4Features.Web\ClientBin\APPLICATION.xap" 
/origin:http://ORIGINAL_LOCATION/ORIGINAL_HOSTING_PAGE /shortcut:desktop 

Чтобы удалить его с помощью следующей команды:

"%ProgramFiles(x86)%\Microsoft Silverlight\sllauncher.exe" /overwrite /uninstall:"X:\PACKAGE_LOCATION\APPLICATION.xap" 
/origin:http://ORIGINAL_LOCATION/ORIGINAL_HOSTING_PAGE /shortcut:desktop 

Для запуска приложения без установки (в режиме эмуляции), используйте следующую команду:

"%ProgramFiles(x86)%\Microsoft Silverlight\sllauncher.exe" /overwrite /emulate:"X:\PACKAGE_LOCATION\APPLICATION.xap" /origin:http://ORIGINAL_LOCATION/ 
8

Как об использовании этого в вашем Application_Startup даже в App.xaml.cs: -

private void Application_Startup(object sender, StartupEventArgs e) 
{ 

    if (IsRunningOutOfBrowser) 
    { 
      this.RootVisual = new MainPage(); 
    } 
    else 
    { 
      this.RootVisual = new PleaseRunOOB(): 
    } 
} 

Теперь создайте очень простой UserControl с именем PleaseRunOOB, чтобы предоставить пользователю neeed для установки и/или запуска OOB-версии приложения.

+0

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

+0

@Nathan: Как средство доставки. – AnthonyWJones

+0

@Nathan: В этом мире есть тонна потребности в том, что Silverlight может обеспечить для приложений LOB. Самый большой элемент - это то, что он устраняет необходимость сражаться с системными администраторами, чтобы получить специальные настройки, развернутые для каждого приложения, которое разработчики создают для решения бизнес-задач. Кроме того, для нового продукта, над которым я работаю, он дает нам кросс-платформенную поддержку, которую мы искали с самого начала. –