修正できないこのエラーがあり、いくつかのテストを行った後、この質問を再フォーマットしました。
Windowsにログインしている同じユーザーでプログラムを実行している場合、アプリケーションで機能するコードがあります。
PrintDialog printDialog = new PrintDialog();
printDialog.PrintDocument(((IDocumentPaginatorSource)flowDocument).DocumentPaginator,description);
ただし、別のアカウントでアプリケーションを実行しようとすると (たとえば、管理者として昇格したり、別のユーザーで実行したり)、コードのこの部分でアプリケーションがクラッシュします。
次の例外が発生します。
PrintTicket XML は整形式ではありません。ルート要素がありません。ルート要素がありません。System.Xml.XmlTextReaderImpl.Throw(Exception e) で System.Xml.XmlTextReaderImpl.ParseDocumentContent() で System.Xml.XmlTextReaderImpl.Read() で System.Xml.XmlLoader.Load(XmlDocument doc、XmlReader リーダー、ブール値の preserveWhitespace) System.Xml.XmlDocument.Load (XmlReader リーダー) で System.Xml.XmlDocument.Load (ストリーム inStream) で MS.Internal.Printing.Configuration.InternalPrintTicket..ctor (ストリーム xmlStream) で
私は XML ファイルを使用していません (私のコードではなく、内部コードの破損だと思います)。
次のように、オブジェクト PrintDialog にもエラーが含まれます。
これらの (X) は、オブジェクトを開始した瞬間を示しています ( new PrintDialog())
また、Platform Target Any CPU または x64 でプログラムをビルドすると、この例外が発生しないことに気付きました。ただし、所有している DLL 用に x86 としてビルドする必要があります。
問題は何ですか?