質問: '80070057' です。 NuGet で以下のものを使っています。 Newtonsoft.Json ZXing.Net MediaCaptureWPF Setup Project の作成方法は、 ・新しいプロジェクトの追加で Visual Studio Installer の Setup Project を選択します ・Application Folder を右クリックして Add > プロジェクト出力を選択します ・プロジェクトは「プライマリ出力」、構成は「アクティブ」を選択して OK を押します ・ソリューションエクスプローラの Setup を右クリックして「ビルド」を選択します という手順です。 前述のフォーム1コだけで成功した場合も同様な方法でインストーラの作成ができました。 同じ方法でビルドエラーになる原因がよくわからないので、ご存知の方がいらっしゃいましたら、教えていただけませんでしょうか? 解決に必要な情報がありましたら、お申し付け下さい。 よろしくお願いします。 --- 追加ですが、ビルドエラーになるプロジェクトは参照に以下のものを追加しています ・System.Runtime.WindowsRuntime.dll ・Windows.winmd 試しに、この2つを成功したプロジェクトでも追加したところ、同様なエラーが発生しました。 System.Runtime.WindowsRuntime.dll のみの場合は成功して、Windows.winmd が入っていると失敗するところまではわかりました。 Windows.winmd が入っているとビルドエラーになる原因をご存知の方がいらっしゃいましたら、教えていただけませんでしょうか? (見当違いでしたら失礼します)
回答: 調査を進めた結果、無事解決しました。 以下に情報を記載しますので、もし同じような症状でお悩みの方の参考になれば幸いです。 ・WPF アプリケーションで WinRT を使う場合(Windows.winmd)は、プライマリ出力で設定すると、インストーラのビルドに失敗する 解決方法は、追加時にプロジェクト出力をやめて、ビルドした .exe ファイルを直接指定する 但し、Debug 内の .exe を選択した場合は、Debug 内を参照するので注意する (アクティブのフォルダを見てくれる方法があれば教えてください) .exe ファイルを直接指定すると、必要な .dll ファイル群も一緒に追加されるので、そのままビルドすることで無事 .msi ファイルを作成することができます。 もし、x64 でビルドした場合 x86 関連のエラーが発生する場合は、インストーラプロジェクトの TargetPlatform が x86 のままでないか確認する 参考になれば幸いです