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