C# 如何从ClickOnce应用程序获取命令行?
在发布之前,我进入了项目->属性->选项->文件关联,并添加了扩展名“.hsp”。设置一个图标和一个ProgID(“MyCompany.Document.1”用于测试)。在我发布并安装之后,我的.hsp文件具有我设置的图标,因此应该正确设置文件关联,但是当我双击其中一个文件时,应用程序将运行,我希望双击的文件的名称位于命令行中。我尝试读取传递给C# 如何从ClickOnce应用程序获取命令行?,c#,.net,winforms,visual-studio-2010,clickonce,C#,.net,Winforms,Visual Studio 2010,Clickonce,在发布之前,我进入了项目->属性->选项->文件关联,并添加了扩展名“.hsp”。设置一个图标和一个ProgID(“MyCompany.Document.1”用于测试)。在我发布并安装之后,我的.hsp文件具有我设置的图标,因此应该正确设置文件关联,但是当我双击其中一个文件时,应用程序将运行,我希望双击的文件的名称位于命令行中。我尝试读取传递给Main函数的参数,尝试Environment.CommandLine,并尝试Environment.GetCommandLineArgs(),但我找到的
Main
函数的参数,尝试Environment.CommandLine
,并尝试Environment.GetCommandLineArgs()
,但我找到的唯一东西是应用程序路径。顺便说一下,在main
函数中创建主窗体之前,我正在进行所有这些检查,只是为了测试。args
参数为空,另外两个参数仅包含我的应用程序路径
这是我的主功能的开始:
static void Main(string[] args)
{
try
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.ThreadException += new ThreadExceptionEventHandler(Application_ThreadException);
MessageBox.Show("CommandLine -> " + Environment.CommandLine);
foreach (string str in args) MessageBox.Show("args -> " + str);
foreach (string str in Environment.GetCommandLineArgs()) MessageBox.Show("GetCommandLineArgs -> " + str);
当您使用ClickOnce发布应用程序,然后通过双击关联文件启动应用程序时,该文件的路径实际上存储在此处:
AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData[0]
请参见此处的MSDN文档:
另外还有一个关于向“已发布”项目添加文件关联的教程: