UWP中引用的.NET标准库中Process.Start的访问被拒绝错误

时间:2019-06-02 00:21:38

标签: c# uwp .net-standard

在我的VS2017解决方案中,我创建了一个UWP.NET Standard Library 2.0.3项目。 UWP引用的图书馆项目。库项目正在使用System.Diagnostics.Process启动一个过程。在调试模式下,我在Library项目中的代码的行Process.Start(...)处遇到拒绝访问错误。

我认为新的.NET标准库项目的目的是统一支持各种平台(.NET,.NET Core,UWP等)。但是我想,UWP应用程序的沙箱性质可能不允许我运行Process.Start(...),尽管该过程正在Library项目中运行。问题:我可能会缺少什么和/或我们如何解决以上问题?

2 个答案:

答案 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的限制,但是请记住,通过这种方式,您的应用程序只能在桌面设备上运行。