2017年10月23日
川俣晶の縁側ソフトウェア技術雑記total 3767 count

.NET CoreのProcess.Start経由でデータファイルを開くことができない問題

Written By: 川俣 晶連絡先

問題 §

System.Diagnostics.Process.Start(path);で、パスがテキストファイルの時、.NET F/Wだと関連付けされたテキストエディタで開くが、.NET Core 2.0だと例外で落ちる。

解決 §

System.Diagnostics.Process.Start(path,args);の形式を使い、第1引数には実行ファイルを指定する。テキストファイルのパスは第2引数に設定する。(関連付けの設定に従ってアプリを起動するという機能性は実現できない)

解決2 (2022/02/08追記) §

System.Diagnostics.Process.Start(path,args);の形式を使い、第1引数には"cmd.exe"を指定し、第2数には"/c (起動したいデータファイル名)"を指定する。ただし起動されるのはcmd.exeなので、完全に互換ではない。

解決3 (2022/10/27追記) §

 UseShellExecuteプロパティを使う。

        ProcessStartInfo pi = new ProcessStartInfo()

        {

            FileName = "http://localhost:8080/",

            UseShellExecute = true,

        };

        Process.Start(pi);

原因 §

不明 (ファイルの関連付けという概念が存在しないOSでも動作させようと思うなら、同じことはできないのだろう……とは推測できる)

感想 §

「.NET Coreはいろいろな点で機能的に見劣りすると思っていたが、ここもそうだな」

「対応OSのミニマムセットにしか作れないわけだね」

「まあ、対応プラットフォームを増やそうとして機能が減ったJ●v●という悪夢の前例はあるから驚かないがな」

「LinuxやMacでも動くから嬉しい!……は、もし動いたらの話……ということだね」

「そうだな。機能が足りないから.NET Coreに移行できません……ということなら、そもそも動かないわけだ」

「で、そもそも.NET Coreの評価はどうなんだい?」

「そこを現在検証中だ。部分的に……ではあるがな」

「検証作業中に、偶然こういう問題に気付いてしまったわけだね」

「そうそう。.NET F/W用のコードを丸ごと持ち込んで比較のために.NET Coreで動作させようとしたら例外が起きて発覚した」

Facebook

キーワード【 川俣晶の縁側ソフトウェア技術雑記
【技術雑記】の次のコンテンツ
2017年
10月
23日
LINQに対する.NET FW 4.7.1と.NET Core 2.0の拡張の調査
3days 0 count
total 4566 count
【技術雑記】の前のコンテンツ
2017年
09月
05日
procmail+postfixの電子メールサーバでqq.comからのメールを拒否するまでの記録
3days 0 count
total 3439 count

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

http://mag.autumn.org/tb.aspx/20171023165413
サイトの表紙【技術雑記】の表紙【技術雑記】のコンテンツ全リスト 【技術雑記】の入手全リスト 【技術雑記】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.36 (Alpha-Test) Copyright (c) 2004-2021 Pie Dey.Co.,Ltd.