2016-11-21 7 views
0

私はNSISインストーラ(Windowsフォームアプリケーション)で作業しています。.nsiファイルを引数として静かに引数として渡して実行し、.exeを作成します。

アプリケーションの主なアイデアは、ユーザーがWindowsフォームアプリケーションを実行し、必要な設定をすべて構成し、「終了」をクリックすると自動的に.nsisファイルが生成されます。また、makeNSIS.exeはで、私のアプリケーションにはが含まれているため、インストーラを使用するためにユーザをインストールする必要はありません。

私の目標は、setup.exeファイルを静かに生成することです。自動的に生成された.nsiファイルを引数としてmakeNSIS.exeに渡し、実行するように指示して、特定のパスにsetup.exeファイルを作成します。そして、私はすべてのことを静かにしたい。私の失敗した試験の

ワン:

 ProcessStartInfo psi = new ProcessStartInfo(); 
     //my automatically generated nsis file 
     psi.Arguments = Application.StartupPath + "\\NSIS\\NSIS SG Project\\NSIS\\My application.nsi"; 
     psi.CreateNoWindow = true; 
     psi.WindowStyle = ProcessWindowStyle.Hidden; 
     //nsis application that is included in my project so that users wouldn't have to install it 
     psi.FileName = Application.StartupPath + "\\NSIS\\makeNSIS.exe"; 
     Process.Start(psi); 

私が間違っているのか?

+0

ウィンドウを非表示にしても、出力にエラーはありますか?プロセス終了コードですか? – Anders

+0

それは成功したと言いますが、どこにもexeファイルは生成されていません。私がcmdに直接 "makensis.exe mynsisfile.nsi"と入力しても、すべて正常に実行されますが、exeファイルは表示されません。どうなり得るか? – Dovile

+0

.nsiの "OutFile"命令は、生成されたインストーラの名前(およびオプションのパス)を設定します。 – Anders

答えて

0

NSIS.exeはコンパイラではありません、MakeNSIS.exeは! Stubs、Plugins、Includeディレクトリも必要ですが、おそらくContribsディレクトリも必要です。

+0

私はmakensis.exeについて知っています。わかりやすくするためにnsis.exeに名前を変更しました。すべてのディレクトリはそのままです。 – Dovile

+0

@Dovile:NSISにはすでにNSIS.exeと呼ばれる別のものがあります。私はその明確さを呼びません。 – Anders

関連する問題