2017-03-14 1 views
2

私はwinformアプリケーションを持っています。私はVSは、setup.exeファイルを生成]タブを公開使用して私のアプリを公開していますインストール時に異なるフォームを開きます

static void Main(string[] args) 
    { 
     Application.EnableVisualStyles(); 
     Application.SetCompatibleTextRenderingDefault(false); 
     if (something) 
     { 
      Application.Run(new Form1()); 
     } 
     else 
     { 
      Application.Run(new Form2()); 
     } 
    } 

私は、インストール時に条件に応じて、開いている別のWindowsフォームをしたいです。今私はメインの方法でそれらを得るためにsetup.exeを渡すべきか分からない。私はすべての上記の場合にはnullを返し

AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData 

私はメインのSetup.exeを実行したときに(私が意味する、私が試した私の主な方法で

setup.exe MyParam=MyParam 
setup.exe "MyParam=MyParam" 
setup.exe "MyParam" 
setup.exe MyParam 
setup.exe /q "MyParam=MyParam" 
and so on 

してから、使用してsetup.exeを実行しようとしましたメソッドが呼び出されます)。

そしてIは、(一時フォルダに)実行exeファイルのパスを含む

Environment.GetCommandLineArgs() 

を試みました。それから私は、0そして、私が作成したプロパティを返します

args.Length 

、常にnullを返し

public static string MyParam{ get; set; } 

を試してみました。だから、私の質問は私のアプリケーションexeに運ばれる引数をsetup.exeに渡すことができますか?私は会社のポリシーのためにsetup.exeを実行する以外の選択肢はありません。

アップデート:ここで与えられたとして、今私は、クエリ文字列のアプローチを使用していますについてはhttp://madskristensen.net/post/url-parameters-in-clickonce-applications

+0

クリックしてパブリッシュします(プロパティ>パブリッシュ>今すぐパブリッシュする)? – Evk

+0

@Evk Yup 'properties> publish> publish now' – user960567

+0

ClickOnceを使って、あなたが望むことができないと思います。 [WiX](http://wixtoolset.org/)または[InstallShield](https://www.flexerasoftware.com/producer/products/software-installation/installshield-software-linux/)のような別のインストールシステムが必要になるでしょう。 installer /) – Pikoh

答えて

0

あなたのアプリケーションを実行し、インストールするには、2つの全く異なるものです。

アプリを起動すると、「何か」に応じて表示するフォームを選択します。それで大丈夫です。しかし、あなたのセットアップでアプリケーションをインストールする前に、アプリケーションは起動していないので、何かを渡す可能性はありません。

私はあなたのアプリケーションをインストールするときに定義され、後でアプリケーションを実行するときに使用されるいくつかの設定オプションについて話していると思います。だから、あなたのセットアップは、後であなたのアプリケーションで使用することができる設定ファイルを作成することがあります。

+0

問題は、私たちの運用チームがsetup.exeファイルを提供することを主張していますが、setup.exeからアプリケーションに渡された引数を取得できません。 – user960567

+0

あなたのアプリをどのように配備するのか分かりません。この方法ではありませんか?1)あなたのアプリケーションとセットアップファイルをビルドします。 2)あなたはそれをユーザー/管理者に与えます。 3)ユーザー/管理者がセットアップファイルを実行します。 4)それはアプリケーションファイルを作成します(そして設定ファイルかもしれません)。5)ユーザーがアプリを実行します。 6)アプリケーションは設定を読み込みます。 –

+0

右だけど、コマンドラインを使ってセットアップファイルを実行したい。ですから、時にはsetup.exeに引数を渡す必要があります。たとえば、User1のインストール(setup.exeの実行中)ではForm1を表示し、User2の場合はForm2を表示したいとします。要するに、インストール後に私のアプリが読むことができるいくつかのインストールオプションが必要です。 – user960567

関連する問題