トップ回答者
ProcessInfoクラスでxsd.exeを実行したいのですが

質問
-
どうしたらいいのでしょうか。
具体的にはXMLファイルにスキーマを作成する必要があります。
サンプルのコードは下記です。
using System Diagnostics;
..............
ProcessInfo psi = new ProcessInfo("Xsd.exe");
psi.Arguments = "xsd " + xmlFile;
Process.Start(psi); <-- WinSys32Exceptionがスローされます。
テストでVisual Studioコマンドプロンプトを起動してxsd sample.xmlで実行すると
スキーマが生成する事を確認しました。
これをコードで実現したいのですが、エラーになってしまいます。どうやらsys32コマンドが
開かれているようです。
よろしくお願いします。
回答
-
-
KentaroM さんからの引用 VSコマンドプロンプトでは実行出来るのですが、プログラムでは普通のユーザの
PCにはインストールされていないのでしょうか?
一般のユーザのPCには入っていません。
一般のユーザのPCで実行する必要があるのであれば、xsd.exeを必要としない形に実装していく必要があるとみられます。
(注:ここで言う「一般のユーザ」はVisual Studioをインストールしていないことを前提としています)
xsd.exeのある場所から分かるとおり、Visual Studioによってインストールされたものです。
※もしくは、SDK(=Software Development Kit、ソフトウェア開発キット)をインストールによっても入るはず。単体で勝手にコピーしてはいけません。
すべての返信
-
-
KentaroM さんからの引用 VSコマンドプロンプトでは実行出来るのですが、プログラムでは普通のユーザの
PCにはインストールされていないのでしょうか?
一般のユーザのPCには入っていません。
一般のユーザのPCで実行する必要があるのであれば、xsd.exeを必要としない形に実装していく必要があるとみられます。
(注:ここで言う「一般のユーザ」はVisual Studioをインストールしていないことを前提としています)
xsd.exeのある場所から分かるとおり、Visual Studioによってインストールされたものです。
※もしくは、SDK(=Software Development Kit、ソフトウェア開発キット)をインストールによっても入るはず。単体で勝手にコピーしてはいけません。
-
こんにちは。中川俊輔 です。
Hongliangさん、Azuleanさん、回答ありがとうございます。
KentaroMさん、フォーラムのご利用ありがとうございます。
有用な情報と思われたため、
Hongliangさん、Azuleanさんの回答へ回答済みチェックをつけさせていただきました。
回答済みチェックが付くことにより、有用な情報を探している方が情報を見つけやすくなります。
有用な情報と思われる回答があった場合は、なるべく回答済みボタンを押してチェックを付けてください。KentaroMさんはチェックを解除することもできますので、ご確認ください。
それでは!