2017-01-14 3 views
1

У меня есть проект библиотеки классов UWP (написанный на C#) с некоторыми полезными классами и функциями полезности. Я хочу создать скрипт, который использует эти классы и функции, и запускается несколько раз в день автоматически. Каков наилучший способ достичь этого?Как я могу использовать библиотеку классов UWP для скриптов?

Должен ли я создать приложение? Если да, то как я могу запустить его несколько раз в день?

Должен ли я создать классическую консольную программу exe и запустить ее с помощью скрипта? Если да, можете ли консольные приложения использовать библиотеки классов UWP?

Должен ли я создать компонент Runtime Windows с фоновой задачей?

Или какое-либо другое решение?

ответ

2

Предполагая, что вы являетесь определением «сценариев», можно растянуть так, чтобы оно означало «запустить приложение», и вы можете многое сделать. Если вы хотите что-то, что будет рассматриваться как более традиционный сценарий, то самое лучшее, что вы можете сделать, - это скомпилировать код в стандартной библиотеке классов .Net (а не в UWP), а затем вызвать его из сценария PowerShell. Если вы можете запускать приложения, тогда есть несколько вариантов, и наиболее подходящие, вероятно, будут зависеть от устройства, на котором они работают, как часто вы хотите их запускать и что они на самом деле делают.

Как вы говорите о приложении UWP, мы должны разрешить ему работать в разных «семействах устройств». Самый простой способ запуска на разных устройствах (рабочий стол & телефон и т. Д.) - это периодическая фоновая задача. В определенные вами интервалы времени он попытается запустить и запустить. В зависимости от возможностей подключения, мощности и т. Д.

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

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

Если вы собираетесь изменить код, подумайте о переходе на использование переносимых классов классов, как тогда вы сможете связать этот код со многими различными типами приложений, включая традиционные приложения для настольных компьютеров и UWP.

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

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

Вы можете запустить обычное приложение или скрипт, установив действие задачи как exe. (или exe и передать файл сценария в качестве параметра.)

Приложения из магазина не имеют EXE, который вы можете просто запустить, поэтому вам нужно сделать немного больше. Они могут запускаться только в Windows Shell. Но, к счастью, есть способ сделать это. Запустите задачу explorer.exe (вы найдете ее в C: \ Windows), а затем добавьте аргумент shell:AppsFolder\[app-PFN]!App.
Где [app-PFN] является семейством продуктов приложения. Вы можете найти значения всех установленных приложений на вашем компьютере, посмотрев «C: \ Users [username] \ AppData \ Local \ Packages \»

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

shell:AppsFolder\Microsoft.WindowsStore_8wekyb3d8bbwe!App 

Task Scheduler app showing the actions tab including above example

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