2016-08-30 23 views
1

thisを使用してUWPアプリケーション用の仲介WinRTサイレントPDF印刷サービスを開発しようとしています。要求されたWindowsランタイムタイプ 'PrintService.PDFPrinting'が登録されていません

私は、仲介WinRTコンポーネントの作成方法に関するすべての手順を実行しました。

Requested Windows Runtime type 'PrintService.PDFPrinting' is not registered.

マイブローカ経由コンポーネントクラス:

public sealed class PDFPrinting 
{ 
    public Boolean PrintPDFs(string pdfFileName) 
    { 
     try 
     { 
      Process proc = new Process(); 
      proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 
      proc.StartInfo.Verb = "print"; 

      //Define location of adobe reader/command line 
      //switches to launch adobe in "print" mode 
      proc.StartInfo.FileName = 
       @"C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe"; 
      proc.StartInfo.Arguments = String.Format(@"/p /h {0}", pdfFileName); 
      proc.StartInfo.UseShellExecute = false; 
      proc.StartInfo.CreateNoWindow = true; 

      proc.Start(); 
      proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 
      if (proc.HasExited == false) 
      { 
       proc.WaitForExit(10000); 
      } 

      proc.EnableRaisingEvents = true; 

      proc.Close(); 
      return true; 
     } 
     catch 
     { 
      return false; 
     } 
    } 
} 

私はそれを呼び出す方法:

var path = @"C:\Users\...\mydocument.pdf"; 
var service = new PrintService.PDFPrinting(); 
service.PrintPDFs(path); 

私extenssion私はUWPアプリでサービスを呼び出すときしかし、私は以下のエラーが出ます:

<Extension Category="windows.activatableClass.inProcessServer"> 
<InProcessServer> 
    <Path>clrhost.dll</Path> 
    <ActivatableClass ActivatableClassId="PrintService.PDFPrinting" ThreadingModel="MTA"> 
    <ActivatableClassAttribute Name="DesktopApplicationPath" Type="string" Value="C:\Development\MyApp" /> 
    </ActivatableClass> 
</InProcessServer> 
</Extension> 
+0

PrintService.PDFPrintingはあなたのappxマニフェストの一部ではないようです。 Extension要素がAppxManifest.xmlファイルに表示されていることを確認してください。 –

+0

@ HansPassant私はそれをチェックしました。これはAppxManifest.xmlファイルにあります。 – FragoDeFalne

+1

http://stackoverflow.com/a/20637241/17034 –

答えて

0

ソルUWP Package.appxmanifest拡張の私の価値観は間違っていました。

私は、参照:

<ActivatableClassAttribute Name="DesktopApplicationPath" Type="string" Value="C:\Development\MyApp" /> 

の代わりに:すべての関連するサポートファイルとプロキシ/スタブDLLが置かれている場所である

<ActivatableClassAttribute Name="DesktopApplicationPath" Type="string" Value="C:\Development\MyApp\MyApp\Debug" /> 

を。 詳細が見つかりましたhere

関連する問題