none
Перенос приложения C# на другую машину RRS feed

  • Вопрос

  • Подскажите как правильно отлавливать проблемы при переносе приложения на другую машину.

    Опишу суть проблемы. Есть приложение, которое использует множество сторонних библиотек. Приложение запускается на машине разработки. Для чистоты проверки работоспособности при переносе приложения я использую чистую Windows установленную на Hyper-V. Если приложение запускается без проблем, то я его смело распространяю. Данное приложение молча валится на этапе загрузки, т.е. еще не выполняется ни одной строчки кода приложения. Как отловить данную проблему, есть идеи?

    12 апреля 2019 г. 7:55

Ответы

Все ответы

  • Есть приложение, которое использует множество сторонних библиотек. 

    Если библиотеки неуправляемые, важно, какова их разрядность, разрядность приложения и системы в целом. Приложения .NET по умолчанию компилируются в машинный код (x86 или x64) в соответствии с разрядностью ОС. В этом случае возможна ситуация, когда приложение x64, а библиотека x86. Загрузка библиотеки становится невозможной и приложение "валится" с ошибкой.

    Укажите в настройках проекта C# целевую разрядность, совпадающую с разрядностью библиотек.


    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

    12 апреля 2019 г. 10:09
  • Самое общее, что можно посоветовать:

    - Посмотреть в журнале событий, появляются ли какие-то ошибки или предупреждения в момент запуска программы.

    - Изучить, чем проблемная машина отличается от машины, на которой все работает (могут иметь значение, например, версия, редакция и разрядность ОС, версия .NET Framework)

    - Включить формирование дампов и, если при падении будет получен дамп, изучать его

    Чтобы сказать что-то более конкретное, нужно больше информации: тип проекта, какие именно библиотеки используются и т.п.

    12 апреля 2019 г. 10:16
  • - Посмотреть в журнале событий, появляются ли какие-то ошибки или предупреждения в момент запуска программы.

    Спасибо за подсказку про журнал! У меня проблема похожая на этот вопрос, но только до слова "System.OutOfMemoryException" у меня "System.IO.FileNotFoundException". А так тоже ругается на C:\WINDOWS\SYSTEM32\KERNELBASE.dll.

    Эту проблему можно решить без установки в ОС дополнительного ПО?

    12 апреля 2019 г. 11:28
  • Покажите полное содержимое записи из журнала событий. Вообще, FileNotFoundException - выглядит как будто действительно что-то нужное не установлено.
    12 апреля 2019 г. 15:20
  • Покажите полное содержимое записи из журнала событий. Вообще, FileNotFoundException - выглядит как будто действительно что-то нужное не установлено.

    * - это имя приложения, убрала, чтоб не мешало...

    Faulting application name: *.exe, version: 1.0.0.0, time stamp: 0x5caf4638
    Faulting module name: KERNELBASE.dll, version: 10.0.17763.404, time stamp: 0x2528b630
    Exception code: 0xe0434352
    Fault offset: 0x0000000000039129
    Faulting process id: 0x2258
    Faulting application start time: 0x01d4f121f303f4ca
    Faulting application path: C:\z\11\Release\*.exe
    Faulting module path: C:\Windows\System32\KERNELBASE.dll
    Report Id: c45f17f0-af21-45fc-ad5b-6b773839a981
    Faulting package full name:
    Faulting package-relative application ID:

    Application: *.exe
    Framework Version: v4.0.30319
    Description: The process was terminated due to an unhandled exception.
    Exception Info: System.IO.FileNotFoundException
       at *.App..ctor()
       at *.App.Main()

    Fault bucket 1362272687746472961, type 5
    Event Name: CLR20r3
    Response: Not available
    Cab Id: 0

    Problem signature:
    P1: *.exe
    P2: 1.0.0.0
    P3: 5caf4638
    P4: *
    P5: 1.0.0.0
    P6: 5caf4638
    P7: 3
    P8: 5
    P9: System.IO.FileNotFoundException
    P10:

    Version=1
    EventType=CLR20r3
    EventTime=131995417247883705
    ReportType=2
    Consent=1
    UploadTime=131995417251748514
    ReportStatus=268435456
    ReportIdentifier=1b9c83b2-abea-441b-a50f-09dcb173ab3a
    IntegratorReportIdentifier=c45f17f0-af21-45fc-ad5b-6b773839a981
    Wow64Host=34404
    NsAppName=*.exe
    OriginalFilename=*.exe
    AppSessionGuid=00002258-0002-0004-caf4-03f321f1d401
    TargetAppId=W:00067e0487ee6fee9e2ba5d17812be8a123500000000!0000adf66f11dc2e432ffefacccabd1ed14ebae8882c!*.exe
    TargetAppVer=2019//04//11:13:50:48!0!*.exe
    BootId=4294967295
    TargetAsId=1282
    IsFatal=1
    EtwNonCollectReason=1
    Response.BucketId=52a18fa4cac367baf2e7c3cab8585c01
    Response.BucketTable=5
    Response.LegacyBucketId=1362272687746472961
    Response.type=4
    Sig[0].Name=Problem Signature 01
    Sig[0].Value=*.exe
    Sig[1].Name=Problem Signature 02
    Sig[1].Value=1.0.0.0
    Sig[2].Name=Problem Signature 03
    Sig[2].Value=5caf4638
    Sig[3].Name=Problem Signature 04
    Sig[3].Value=*
    Sig[4].Name=Problem Signature 05
    Sig[4].Value=1.0.0.0
    Sig[5].Name=Problem Signature 06
    Sig[5].Value=5caf4638
    Sig[6].Name=Problem Signature 07
    Sig[6].Value=3
    Sig[7].Name=Problem Signature 08
    Sig[7].Value=5
    Sig[8].Name=Problem Signature 09
    Sig[8].Value=System.IO.FileNotFoundException
    DynamicSig[1].Name=OS Version
    DynamicSig[1].Value=10.0.17763.2.0.0.256.72
    DynamicSig[2].Name=Locale ID
    DynamicSig[2].Value=1033
    DynamicSig[22].Name=Additional Information 1
    DynamicSig[22].Value=1dc9
    DynamicSig[23].Name=Additional Information 2
    DynamicSig[23].Value=1dc9443092663b1ba267e86923267d52
    DynamicSig[24].Name=Additional Information 3
    DynamicSig[24].Value=91a0
    DynamicSig[25].Name=Additional Information 4
    DynamicSig[25].Value=91a0088f4c2058faec9065ac541b7e15
    UI[2]=C:\z\11\Release\*.exe
    LoadedModule[0]=C:\z\11\Release\*.exe
    LoadedModule[1]=C:\Windows\SYSTEM32\ntdll.dll
    LoadedModule[2]=C:\Windows\SYSTEM32\MSCOREE.DLL
    LoadedModule[3]=C:\Windows\System32\KERNEL32.dll
    LoadedModule[4]=C:\Windows\System32\KERNELBASE.dll
    LoadedModule[5]=C:\Windows\SYSTEM32\apphelp.dll
    LoadedModule[6]=C:\Windows\SYSTEM32\AcLayers.DLL
    LoadedModule[7]=C:\Windows\System32\msvcrt.dll
    LoadedModule[8]=C:\Windows\System32\USER32.dll
    LoadedModule[9]=C:\Windows\System32\win32u.dll
    LoadedModule[10]=C:\Windows\System32\GDI32.dll
    LoadedModule[11]=C:\Windows\System32\gdi32full.dll
    LoadedModule[12]=C:\Windows\System32\msvcp_win.dll
    LoadedModule[13]=C:\Windows\System32\ucrtbase.dll
    LoadedModule[14]=C:\Windows\System32\SHLWAPI.dll
    LoadedModule[15]=C:\Windows\System32\combase.dll
    LoadedModule[16]=C:\Windows\System32\RPCRT4.dll
    LoadedModule[17]=C:\Windows\System32\bcryptPrimitives.dll
    LoadedModule[18]=C:\Windows\System32\ADVAPI32.dll
    LoadedModule[19]=C:\Windows\System32\sechost.dll
    LoadedModule[20]=C:\Windows\SYSTEM32\sfc.dll
    LoadedModule[21]=C:\Windows\SYSTEM32\WINSPOOL.DRV
    LoadedModule[22]=C:\Windows\System32\kernel.appcore.dll
    LoadedModule[23]=C:\Windows\System32\bcrypt.dll
    LoadedModule[24]=C:\Windows\SYSTEM32\PROPSYS.dll
    LoadedModule[25]=C:\Windows\System32\OLEAUT32.dll
    LoadedModule[26]=C:\Windows\System32\shcore.dll
    LoadedModule[27]=C:\Windows\SYSTEM32\IPHLPAPI.DLL
    LoadedModule[28]=C:\Windows\SYSTEM32\sfc_os.DLL
    LoadedModule[29]=C:\Windows\SYSTEM32\SortWindows61.dll
    LoadedModule[30]=C:\Windows\System32\IMM32.DLL
    LoadedModule[31]=C:\Windows\Microsoft.NET\Framework64\v4.0.30319\mscoreei.dll
    LoadedModule[32]=C:\Windows\SYSTEM32\VERSION.dll
    LoadedModule[33]=C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
    LoadedModule[34]=C:\Windows\SYSTEM32\MSVCR120_CLR0400.dll
    LoadedModule[35]=C:\Windows\assembly\NativeImages_v4.0.30319_64\mscorlib\e2c5db271896923f5450a77229fb2077\mscorlib.ni.dll
    LoadedModule[36]=C:\Windows\System32\ole32.dll
    LoadedModule[37]=C:\Windows\system32\uxtheme.dll
    LoadedModule[38]=C:\Windows\assembly\NativeImages_v4.0.30319_64\System\1eca7c432f5a4a5565d7baf771596696\System.ni.dll
    LoadedModule[39]=C:\Windows\assembly\NativeImages_v4.0.30319_64\System.Core\7f6e28abc06e0862235287813c887df1\System.Core.ni.dll
    LoadedModule[40]=C:\Windows\assembly\NativeImages_v4.0.30319_64\WindowsBase\b2697d31e18ca5e2b664e7413dd7f134\WindowsBase.ni.dll
    LoadedModule[41]=C:\Windows\System32\CRYPTSP.dll
    LoadedModule[42]=C:\Windows\system32\rsaenh.dll
    LoadedModule[43]=C:\Windows\SYSTEM32\CRYPTBASE.dll
    LoadedModule[44]=C:\Windows\assembly\NativeImages_v4.0.30319_64\PresentationCore\3388f19e4865fa72b3e4fd23bbcdd194\PresentationCore.ni.dll
    LoadedModule[45]=C:\Windows\assembly\NativeImages_v4.0.30319_64\Presentatio5ae0f00f#\82b21b8e0f6279daa67f1245814e253a\PresentationFramework.ni.dll
    LoadedModule[46]=C:\Windows\assembly\NativeImages_v4.0.30319_64\System.Xaml\8aeda6440f378ea86bc49360ea59468f\System.Xaml.ni.dll
    LoadedModule[47]=C:\Windows\SYSTEM32\dwrite.dll
    LoadedModule[48]=C:\Windows\Microsoft.NET\Framework64\v4.0.30319\WPF\wpfgfx_v0400.dll
    LoadedModule[49]=C:\Windows\SYSTEM32\MSVCP120_CLR0400.dll
    LoadedModule[50]=C:\Windows\Microsoft.NET\Framework64\v4.0.30319\WPF\PresentationNative_v0400.dll
    LoadedModule[51]=C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clrjit.dll
    LoadedModule[52]=C:\Windows\Microsoft.NET\Framework64\v4.0.30319\diasymreader.dll
    State[0].Key=Transport.DoneStage1
    State[0].Value=1
    OsInfo[0].Key=vermaj
    OsInfo[0].Value=10
    OsInfo[1].Key=vermin
    OsInfo[1].Value=0
    OsInfo[2].Key=verbld
    OsInfo[2].Value=17763
    OsInfo[3].Key=ubr
    OsInfo[3].Value=437
    OsInfo[4].Key=versp
    OsInfo[4].Value=0
    OsInfo[5].Key=arch
    OsInfo[5].Value=9
    OsInfo[6].Key=lcid
    OsInfo[6].Value=1033
    OsInfo[7].Key=geoid
    OsInfo[7].Value=244
    OsInfo[8].Key=sku
    OsInfo[8].Value=72
    OsInfo[9].Key=domain
    OsInfo[9].Value=0
    OsInfo[10].Key=prodsuite
    OsInfo[10].Value=256
    OsInfo[11].Key=ntprodtype
    OsInfo[11].Value=1
    OsInfo[12].Key=platid
    OsInfo[12].Value=10
    OsInfo[13].Key=sr
    OsInfo[13].Value=0
    OsInfo[14].Key=tmsi
    OsInfo[14].Value=1654
    OsInfo[15].Key=osinsty
    OsInfo[15].Value=2
    OsInfo[16].Key=iever
    OsInfo[16].Value=11.437.17763.0-11.0.120
    OsInfo[17].Key=portos
    OsInfo[17].Value=0
    OsInfo[18].Key=ram
    OsInfo[18].Value=2048
    OsInfo[19].Key=svolsz
    OsInfo[19].Value=126
    OsInfo[20].Key=wimbt
    OsInfo[20].Value=0
    OsInfo[21].Key=blddt
    OsInfo[21].Value=180914
    OsInfo[22].Key=bldtm
    OsInfo[22].Value=1434
    OsInfo[23].Key=bldbrch
    OsInfo[23].Value=rs5_release
    OsInfo[24].Key=bldchk
    OsInfo[24].Value=0
    OsInfo[25].Key=wpvermaj
    OsInfo[25].Value=0
    OsInfo[26].Key=wpvermin
    OsInfo[26].Value=0
    OsInfo[27].Key=wpbuildmaj
    OsInfo[27].Value=0
    OsInfo[28].Key=wpbuildmin
    OsInfo[28].Value=0
    OsInfo[29].Key=osver
    OsInfo[29].Value=10.0.17763.437.amd64fre.rs5_release.180914-1434
    OsInfo[30].Key=buildflightid
    OsInfo[31].Key=edition
    OsInfo[31].Value=EnterpriseEval
    OsInfo[32].Key=ring
    OsInfo[32].Value=Retail
    OsInfo[33].Key=expid
    OsInfo[34].Key=containerid
    OsInfo[35].Key=containertype
    OsInfo[36].Key=edu
    OsInfo[36].Value=0
    FriendlyEventName=Stopped working
    ConsentKey=CLR20r3
    AppName=*
    AppPath=C:\z\11\Release\*.exe
    NsPartner=windows
    NsGroup=windows8
    ApplicationIdentity=6B06A3928B4969AF7DE0894AB23AF4C1
    MetadataHash=-99321499

    Если предположить, что проблема с предыдущей или последующей dll при загрузке:

    LoadedModule[3]=C:\Windows\System32\KERNEL32.dll
    LoadedModule[4]=C:\Windows\System32\KERNELBASE.dll
    LoadedModule[5]=C:\Windows\SYSTEM32\apphelp.dll

    то все три dll есть в наличии...

    12 апреля 2019 г. 15:36
  • Запустите приложение под отладчиком, лучше всего отладочный вариант. Проще всего использовать удаленную отладку:

    https://docs.microsoft.com/en-us/visualstudio/debugger/remote-debugging?view=vs-2019

    И конечно проблема не в загруженных DLL, они ведь уже загружены.


    This posting is provided "AS IS" with no warranties, and confers no rights.

    12 апреля 2019 г. 18:17
    Модератор
  • Запустите приложение под отладчиком, лучше всего отладочный вариант. Проще всего использовать удаленную отладку:

    https://docs.microsoft.com/en-us/visualstudio/debugger/remote-debugging?view=vs-2019

    И конечно проблема не в загруженных DLL, они ведь уже загружены.


    This posting is provided "AS IS" with no warranties, and confers no rights.

    А где можно скачать отладчик для VS2017? При открытии этой ссылки. Получаю сообщение:"Sorry, we couldn't find any downloads for you.".
    12 апреля 2019 г. 19:07
  • Запустите приложение под отладчиком, лучше всего отладочный вариант. Проще всего использовать удаленную отладку:

    https://docs.microsoft.com/en-us/visualstudio/debugger/remote-debugging?view=vs-2019

    И конечно проблема не в загруженных DLL, они ведь уже загружены.


    This posting is provided "AS IS" with no warranties, and confers no rights.

    А где можно скачать отладчик для VS2017? При открытии этой ссылки. Получаю сообщение:"Sorry, we couldn't find any downloads for you.".

    Ссылка рабочая, но видимо требуется подписка MSDN:

    Попробуйте тут:

    https://visualstudio.microsoft.com/vs/older-downloads/



    This posting is provided "AS IS" with no warranties, and confers no rights.

    12 апреля 2019 г. 20:01
    Модератор
  • Ссылка рабочая, но видимо требуется подписка MSDN:

    Попробуйте тут:

    https://visualstudio.microsoft.com/vs/older-downloads/

    Эта ссылка тоже требует подписку. А тем у кого нет подписки MSDN, где взять удаленный отладчик?
    12 апреля 2019 г. 20:42
  • Ссылка рабочая, но видимо требуется подписка MSDN:

    Попробуйте тут:

    https://visualstudio.microsoft.com/vs/older-downloads/

    Эта ссылка тоже требует подписку. А тем у кого нет подписки MSDN, где взять удаленный отладчик?

    Только что попробовал в инкогнито вот эту ссылку и все без проблем загрузилось.

    https://visualstudio.microsoft.com/downloads/?q=remote+tools#remote-tools-for-visual-studio-2019

    


    This posting is provided "AS IS" with no warranties, and confers no rights.

    12 апреля 2019 г. 22:58
    Модератор
  • Подскажите как правильно отлавливать проблемы при переносе приложения на другую машину.

     Если приложение запускается без проблем, то я его смело распространяю.

      Приветствую.
     А как распространяете? Через Магазин? Может быть попробовать загрузить приложение UWP в Магазин Windows, установив в настройках отправки пакетов все возможные конфигурации? Затем скачать приложение на другой компьютер. Адаптацию выполнит сам Магазин.

    Фоновое изображение

    13 апреля 2019 г. 6:05
  •  А как распространяете? Через Магазин?
    Нет, это WPF приложение. Распространение - это формирование папки, в которой будут все необходимые файлы для запуска приложения.
    13 апреля 2019 г. 6:29
  • Только что попробовал в инкогнито вот эту ссылку и все без проблем загрузилось.

    https://visualstudio.microsoft.com/downloads/?q=remote+tools#remote-tools-for-visual-studio-2019

    У меня отображается фраза: "Не удалось найти результаты. Поиск не дал результатов.".
    13 апреля 2019 г. 6:34
  • Как я понимаю, все скачиваемые файлы, имеющие отношение к VS теперь доступны исключительно через my.visualstudio.com. Иметь подписку MSDN не обязательно. С учетной записью MS оформляется бессрочная свободная подписка "Visual Studio Dev Essentials" и файлы можно качать. Нельзя, правда, получить ключи к версиям VS Pro и выше.

    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

    13 апреля 2019 г. 12:02
  • Как я понимаю, все скачиваемые файлы, имеющие отношение к VS теперь доступны исключительно через my.visualstudio.com. Иметь подписку MSDN не обязательно. С учетной записью MS оформляется бессрочная свободная подписка "Visual Studio Dev Essentials" и файлы можно качать. Нельзя, правда, получить ключи к версиям VS Pro и выше.
    Да, после принятия соглашения на my.visualstudio.com, удалось получить возможность скачать удаленный отладчик. Спасибо.
    13 апреля 2019 г. 12:34
  • При запуске через удаленный отладчик получаю следующее сообщение:

    "Не удалось загрузить файл или сборку "CefSharp.Core.dll" либо одну из их зависимостей. Не найден указанный модуль.".

    Файл dll находится рядом с запускаемым файлом. Папки синхронизированы, как и требует удаленная отладка, но на локальной машине работает, а на удаленной валится.

    Подскажите, куда дальше копать?

    13 апреля 2019 г. 13:28
  • Перечитайте мой первый комментарий.

    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

    13 апреля 2019 г. 13:41
  • Вот здесь что-то обсуждается по поводу разрядности и CefSharp:

    https://github.com/cefsharp/CefSharp/issues/1714


    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

    13 апреля 2019 г. 13:49
  • Перечитайте мой первый комментарий.

    Не думаю, что проблема в разрядности. Обе винды установлены из одного х64 образа, проект скомпилирован в release x64 и х86, оба не запускаются на пустой Windows.
    13 апреля 2019 г. 14:33
  • Включите логи загрузки сборок по этой инструкции, затем посмотрите через Fusion Log Viewer, какой именно DLL не хватает.  У CefSharp в зависимостях Visual C++ Redistributable, возможно, его и не хватает.
    • Помечено в качестве ответа Liliya Muray 13 апреля 2019 г. 14:50
    13 апреля 2019 г. 14:38
  • Вот здесь что-то обсуждается по поводу разрядности и CefSharp:

    https://github.com/cefsharp/CefSharp/issues/1714

    Да, в CefSharp многовато глюков. Качала исходники проекта, так там есть привязка к папкам исходника...

    Просто хотела под WPF юзать WebRTC, но так и не могу найти адекватную библиотеку или путь.

    13 апреля 2019 г. 14:41
  • Включите логи загрузки сборок по этой инструкции, затем посмотрите через Fusion Log Viewer, какой именно DLL не хватает.  У CefSharp в зависимостях Visual C++ Redistributable, возможно, его и не хватает.
    Вы правы, не хватало Visual C++ Redistributable.
    13 апреля 2019 г. 14:50
  •  А как распространяете? Через Магазин?

    Нет, это WPF приложение. Распространение - это формирование папки, в которой будут все необходимые файлы для запуска приложения.

    Реально распространение - это создание установщика который будет устанавливать все что требуется. VS имеет проекты для этого, в том числе бустстрапер для подтягивания зависимостей вроде C++ runtime или .Net Framework. 


    This posting is provided "AS IS" with no warranties, and confers no rights.

    13 апреля 2019 г. 17:38
    Модератор
  • Нет, это WPF приложение. Распространение - это формирование папки, в которой будут все необходимые файлы для запуска приложения.

    Реально распространение - это создание установщика который будет устанавливать все что требуется. VS имеет проекты для этого, в том числе бустстрапер для подтягивания зависимостей вроде C++ runtime или .Net Framework.

    Вы правы, распространение приложения это сначала установка приложения, а потом его использование.

    В моем случае, я хочу получить один ехе файл, который я буду запускать с флешки с правами админа. На сколько я почитала, стандартные средства не собирают в один ехе с правами админа. Я нашла, что "Costura.Fody" работает в этом направлении и она справлялась с другими NuGet (SignalR и прочее), но вот CefSharp оказался не по зубам...

    13 апреля 2019 г. 18:42
  • Можно попробовать пересобрать CefCsharp из исходников, переключив компоновку стандартной библиотеки на статическую, если вы действительно хотите получить "один большой EXE без зависимостей".
    13 апреля 2019 г. 19:37
  • Можно попробовать пересобрать CefCsharp из исходников, переключив компоновку стандартной библиотеки на статическую, если вы действительно хотите получить "один большой EXE без зависимостей".
    Я в этом не особо разбираюсь, но в CefCsharp по мимо библиотек еще куча других файлов создается, плюс процесс браузера выполнен в виде отдельного ехе, так что один файл точно не получится((( Видимо поэтому и Costura.Fody не может его корректно обрабатывать.
    13 апреля 2019 г. 20:15
  • Можно попробовать пересобрать CefCsharp из исходников, переключив компоновку стандартной библиотеки на статическую, если вы действительно хотите получить "один большой EXE без зависимостей".

    Я в этом не особо разбираюсь, но в CefCsharp по мимо библиотек еще куча других файлов создается, плюс процесс браузера выполнен в виде отдельного ехе, так что один файл точно не получится((( Видимо поэтому и Costura.Fody не может его корректно обрабатывать.
    Само по себе подключение браузера всего лишь для использования WebRTC является весьма сомнительной идеей. Уж если на то пошло, то надо делать например PWA.

    This posting is provided "AS IS" with no warranties, and confers no rights.

    13 апреля 2019 г. 21:19
    Модератор
  • Само по себе подключение браузера всего лишь для использования WebRTC является весьма сомнительной идеей. Уж если на то пошло, то надо делать например PWA.

    Вы абсолютно правы! Это самая ужасная идея по доступу к WebRTC. Потому что к приложению нужно прикладывать современный браузер, который весит уже более 100 метров. Я не смогла найти бесплатную библиотеку, которая смогла бы дать весь функционал WebRTC. Пробовала ORTC для WPF подняла дата канал, но получить в списке видео входы не получилось, только аудео входы и выходы, причем в списке были и микрофоны камер. Скачала исходники WebRTC у гугла около 10 гигов, получила из них проекты для студии (908 проектов), но они помечены как "пропущен", что делать с этим дальше инфы не нашла или как их правильно прикрутить к проекту. Поэтому и остановилась на "весьма сомнительной идееи", так как это дает больше функций чем другие найденные мной пути.

    Простите не совсем поняла ваше предложение про PWA. Бегло прочитав одну статью, отложилось впечатление, что это прослойка между браузером и сайтом. WebRTC - это грубо говоря (в текущем примере) функции встроенные в браузер, чем может помочь прослойка?


    14 апреля 2019 г. 7:22
  • Само по себе подключение браузера всего лишь для использования WebRTC является весьма сомнительной идеей. Уж если на то пошло, то надо делать например PWA.

    Вы абсолютно правы! Это самая ужасная идея по доступу к WebRTC. Потому что к приложению нужно прикладывать современный браузер, который весит уже более 100 метров. Я не смогла найти бесплатную библиотеку, которая смогла бы дать весь функционал WebRTC. Пробовала ORTC для WPF подняла дата канал, но получить в списке видео входы не получилось, только аудео входы и выходы, причем в списке были и микрофоны камер. Скачала исходники WebRTC у гугла около 10 гигов, получила из них проекты для студии (908 проектов), но они помечены как "пропущен", что делать с этим дальше инфы не нашла или как их правильно прикрутить к проекту. Поэтому и остановилась на "весьма сомнительной идееи", так как это дает больше функций чем другие найденные мной пути.

    Простите не совсем поняла ваше предложение про PWA. Бегло прочитав одну статью, отложилось впечатление, что это прослойка между браузером и сайтом. WebRTC - это грубо говоря (в текущем примере) функции встроенные в браузер, чем может помочь прослойка?


    По сути это приложение которое выглядит и ведет себя как локальное, но на деле является веб сайтом и выполняется в браузере. Соответственно WPF заменяется на HTML, C# на TS/JS. Ну а WebRTC получаем даром.

    This posting is provided "AS IS" with no warranties, and confers no rights.

    14 апреля 2019 г. 16:20
    Модератор
  • По сути это приложение которое выглядит и ведет себя как локальное, но на деле является веб сайтом и выполняется в браузере. Соответственно WPF заменяется на HTML, C# на TS/JS. Ну а WebRTC получаем даром.
    Я не хочу менять C# на TS/JS. Мне нужно локальное приложение с халявными плюшками от WebRTC. Не люблю я JS и пользуюсь ей только в крайних случаях. Я смотру в сторону WebRTC через хром только из-за того, что не нашла библиотеку, которая бы позволила воспользоваться современным WebRTC из локального приложения на C#.
    14 апреля 2019 г. 16:52
  • По сути это приложение которое выглядит и ведет себя как локальное, но на деле является веб сайтом и выполняется в браузере. Соответственно WPF заменяется на HTML, C# на TS/JS. Ну а WebRTC получаем даром.

    Я не хочу менять C# на TS/JS. Мне нужно локальное приложение с халявными плюшками от WebRTC. Не люблю я JS и пользуюсь ей только в крайних случаях. Я смотру в сторону WebRTC через хром только из-за того, что не нашла библиотеку, которая бы позволила воспользоваться современным WebRTC из локального приложения на C#.

    Профессионалы используют средства подходящие для решения конкретной задачи не отвлекаясь на такие мелочи как личное мнение об этих средствах. Опять же, оно может изменится по мере использования. По мере развития индустрии все меняется и надо уметь приобретать новые навыки. Сегодня актуальны не UWP и не WPF, a скорее HTML/JS/TS.


    This posting is provided "AS IS" with no warranties, and confers no rights.

    14 апреля 2019 г. 17:53
    Модератор
  • Профессионалы используют средства подходящие для решения конкретной задачи не отвлекаясь на такие мелочи как личное мнение об этих средствах. Опять же, оно может изменится по мере использования. По мере развития индустрии все меняется и надо уметь приобретать новые навыки. Сегодня актуальны не UWP и не WPF, a скорее HTML/JS/TS.
    Да, согласна, что для каждой задачи свои средства. Согласна, что будущее за Web разработкой. Мне нравиться направление развития Web приложений в ASP.Net Core. Конкретно сейчас мне нужно локальное приложение для рабочего стола, которое воспользуется передачей потоковых данных по пиринговому соединению сквозь простой Nat. На халяву это делает WebRTC, а халявный WebRTC нашла в CefCsharp. Если знаете лучший и простой путь для моей задачи, я готова его выслушать, так как тоже не считаю свой вариант правильным.
    14 апреля 2019 г. 18:26
  • Профессионалы используют средства подходящие для решения конкретной задачи не отвлекаясь на такие мелочи как личное мнение об этих средствах. Опять же, оно может изменится по мере использования. По мере развития индустрии все меняется и надо уметь приобретать новые навыки. Сегодня актуальны не UWP и не WPF, a скорее HTML/JS/TS.

    Да, согласна, что для каждой задачи свои средства. Согласна, что будущее за Web разработкой. Мне нравиться направление развития Web приложений в ASP.Net Core. Конкретно сейчас мне нужно локальное приложение для рабочего стола, которое воспользуется передачей потоковых данных по пиринговому соединению сквозь простой Nat. На халяву это делает WebRTC, а халявный WebRTC нашла в CefCsharp. Если знаете лучший и простой путь для моей задачи, я готова его выслушать, так как тоже не считаю свой вариант правильным.
    Я уже указал то что считаю правильным вариантом - PWA. 

    This posting is provided "AS IS" with no warranties, and confers no rights.

    14 апреля 2019 г. 18:44
    Модератор
  • Сегодня актуальны не UWP и не WPF, a скорее HTML/JS/TS.


    This posting is provided "AS IS" with no warranties, and confers no rights.

       Видимо разработчики Visual Studio так не считают. Отладчика JS до сих пор нет. Хотя  обещали его в Chrome. Но в VS 2017 он не только не появился в Chrome но и исчез в IE, единственном браузере где можно было отлаживать JS в версии VS 2012 for Web. 


    Фоновое изображение



    14 апреля 2019 г. 18:59
  • А его точно нет, или может он просто сломался на вашей машине? В интернете есть куча различной информации об отладке JS в VS 2017 (как в Chrome, так и в Edge), вряд ли вся она ложная. 
    14 апреля 2019 г. 19:27
  • Сегодня актуальны не UWP и не WPF, a скорее HTML/JS/TS.


    This posting is provided "AS IS" with no warranties, and confers no rights.

       Видимо разработчики Visual Studio так не считают. Отладчика JS до сих пор нет. Хотя  обещали его в Chrome. Но в VS 2017 он не только не появился в Chrome но и исчез в IE, единственном браузере где можно было отлаживать JS в версии VS 2012 for Web. 


    Фоновое изображение



    Для этого следует использовать VS Code, а не классическую VS:

    https://code.visualstudio.com/



    This posting is provided "AS IS" with no warranties, and confers no rights.

    14 апреля 2019 г. 20:04
    Модератор