我有一个winform应用程序。我想根据安装过程中的条件打开不同的窗体,
static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
if (something)
{
Application.Run(new Form1());
}
else
{
Application.Run(new Form2());
}
}
我使用VS发布标签发布我的应用,生成setup.exe文件。现在我不知道如何通过setup.exe来获取它们在我的Main方法中。我尝试使用
运行setup.exesetup.exe MyParam=MyParam
setup.exe "MyParam=MyParam"
setup.exe "MyParam"
setup.exe MyParam
setup.exe /q "MyParam=MyParam"
and so on
然后在我试用的Main方法中,
AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData
在上述每种情况下返回null(我的意思是当我运行setup.exe时,将调用Main方法)。
然后我试过了,
Environment.GetCommandLineArgs()
包括正在运行的exe的路径(在temp文件夹中)。然后我试了,
args.Length
返回0.然后我创建了属性
public static string MyParam{ get; set; }
始终返回null。所以,我的问题是如何将setup.exe传递给我的应用程序exe?除了运行setup.exe之外,我没有其他选择,因为公司政策。
更新:目前我正在使用此处给出的查询字符串方法,http://madskristensen.net/post/url-parameters-in-clickonce-applications
答案 0 :(得分:0)
运行和安装你的应用程序是两件完全不同的事情。
启动应用时,您可以根据“内容”选择要显示的表单。没关系。但之前,当您通过安装程序安装应用程序时,应用程序未启动,因此无法通过“某事”。
我认为您正在讨论一些配置选项,这些选项在安装您的应用时定义,并在以后运行应用时使用。因此,可能是您的安装程序可以创建配置文件,以后可以由您的应用程序使用。