私は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
クリックしてパブリッシュします(プロパティ>パブリッシュ>今すぐパブリッシュする)? – Evk
@Evk Yup 'properties> publish> publish now' – user960567
ClickOnceを使って、あなたが望むことができないと思います。 [WiX](http://wixtoolset.org/)または[InstallShield](https://www.flexerasoftware.com/producer/products/software-installation/installshield-software-linux/)のような別のインストールシステムが必要になるでしょう。 installer /) – Pikoh