Ни одно приложение не связано с указанным файлом для этой операции (VB.NET)

у нас есть приложение Win Forms, которое создает pdf с iTextSharp, сохраняет его в локальном каталоге, а затем приложение открывает файл. С одним клиентом (все коробки XP и Adobe Reader 11) он выдает следующую ошибку

No application is associated with the specified file for this operation
at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start()

что предполагает, что Adobe Reader неправильно связан с расширением pdf, кроме того, что они могут перемещаться в локальный каталог и открывать файл без каких-либо проблем.

кто-нибудь столкнется с этим прежде чем странность?

Edit re ZippyV-пример типичного sub

 Public Sub PDF_Functions_LogCalls_RunReport(ByVal Customer As Boolean)
    Try
        Dim vOutput As String = LogCalls_Run(Customer)
        If Left(vOutput, 5) = "Error" Then
            TaskDialog.Show(MainForm, AppBoxError("File Error", vOutput, "Error"))
            Exit Sub
        End If
        If System.IO.File.Exists(vOutput) Then
            Dim P As New Process
            P.StartInfo.FileName = vOutput
            P.StartInfo.Verb = "Open"
            P.Start()
        End If
    Catch ex As Exception
        EmailError(ex)
        Exit Sub
    End Try
End Sub

2 ответов


вы неправильно читаете сообщение об ошибке. Я добавил акцент на соответствующую часть:

ни одно приложение не связано с указанным файлом для этой операции

Это означает, что нет приложения, связанного с глаголом "открыть". Измените код, чтобы просто использовать пустую строку (или просто не устанавливать)Verb:

P.StartInfo.FileName = vOutput
P.StartInfo.Verb = ""
P.Start()

Это использует любую операцию по умолчанию для .формат PDF, который будет соответствовать операции вы получите, если дважды щелкнуть файл в Проводнике Windows.

последние версии Acrobat устанавливают действие по умолчанию "открыть с помощью Adobe Reader XI "вместо" открыть", как вы можете видеть, если вы щелкните правой кнопкой мыши .файл PDF.

Acrobat context menu as seen in Windows Explorer

это, по-видимому, то, что вызывает ошибку "не связано с этой операцией".


эта ошибка на самом деле происходит, когда есть разница между поведением по умолчанию открытия файла и относительным поведением открытия файла. Например, если выбрано приложение по умолчанию для открытия .pdf-файлы как Internet Explorer, и вы пытаетесь открыть тот же файл с помощью Process.метод Start. Вы получите исключение, потому что в соответствии с операций, по умолчанию он должен открыть этот файл в Internet Explorer и приложение пытается открыть его с помощью программа Adobe Reader.

чтобы исправить это, установите приложение по умолчанию для.pdf-файл как Adobe Reader, и вы больше не получите эту ошибку.