在我的VS2017
解决方案中,我创建了一个UWP
和.NET Standard Library 2.0.3
项目。 UWP引用的图书馆项目。库项目正在使用System.Diagnostics.Process
启动一个过程。在调试模式下,我在Library项目中的代码的行Process.Start(...)
处遇到拒绝访问错误。
我认为新的.NET标准库项目的目的是统一支持各种平台(.NET,.NET Core,UWP等)。但是我想,UWP应用程序的沙箱性质可能不允许我运行Process.Start(...)
,尽管该过程正在Library项目中运行。问题:我可能会缺少什么和/或我们如何解决以上问题?
答案 0 :(得分:0)
根据this answer,您不能在UWP应用中使用#
# This is a Shiny web application. You can run the application by clicking
# the 'Run App' button above.
#
# Find out more about building applications with Shiny here:
#
# http://shiny.rstudio.com/
#
library(shiny)
library(survival)
library(survminer)
library(ggplot2)
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
fileInput("file","File input"),
selectInput("Survival",
label = "Length of Survival",
choices = c('survival1',
'survival2'),
selected = 'survival1'),
selectInput("Treatment",
"Treatment",
choices = c("treatment1", "treatmentt2"),
selected = "treatment1"),
selectInput("Endpoint",
"Endpoint",
choices = c("endpoint1", "endpoint2"),
selected = "endpoint1")
),
mainPanel(
plotOutput("KM"),
textOutput('modelSummary')
)
)
)
server <- function(input, output) {
options(shiny.maxRequestSize=40*1024^2)
raw_surv_data <- reactive({
req(input$file)
read.csv(input$file$datapath)
})
surv_data <- reactive({
raw_surv <- raw_surv_data()
data.frame(
Time = raw_surv[[input$Survival]],
Treatment = raw_surv[[input$Treatment]],
Endpoint = raw_surv[[input$Endpoint]]
)
})
surv_fit <- reactive({
survfit(Surv(Time , Endpoint) ~ Treatment, data = surv_data())
})
output$KM <- renderPlot({
ggsurvplot(surv_fit(), risk.table = TRUE, data = surv_data())
})
cox_fit <- reactive({
coxph(Surv(Time, Endpoint) ~ Treatment, data = surv_data())
})
output$modelSummary <- renderPrint({
summary(cox_fit)
})
}
shinyApp(ui = ui, server = server)
。有一些启动其他应用程序的替代方法,但是您无法执行任意Process.Start
或其他进程。
答案 1 :(得分:0)
您不能直接从UWP启动进程,但是有一些替代方法可以执行此操作。第一个正在使用FullTrustProcessLauncher,如果您需要一些示例,请查看此post系列。另一种方法是使用WPF或WinForms应用程序通过Xaml Islands来承载UWP控件,在该调用中没有任何调用.NET API的限制,但是请记住,通过这种方式,您的应用程序只能在桌面设备上运行。