c# - 我有一个带有文件关联的 ClickOnce 应用程序,但我遇到了参数问题

标签 c# clickonce argument-passing file-association launching-application

这是我的程序主要:

static void Main(string[] args)
    {
        for (int r = 0; r <= args.Length ; r++ )
        {
            MessageBox.Show(args[r]);
        }
        if (args != null && args.Length > 0)
        {
            string filename = args[0];

            if (File.Exists(filename))
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Location_Alert MainForm = new Location_Alert();
                MainForm.ImportFile(filename);
                Application.Run(MainForm);
            }
        }
        else
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Location_Alert());
        }

问题是,当我启动与程序关联的 *.enot 文件时,程序启动,但参数似乎没有设置,因为 args 为空。

是否有一些我缺少的特定于 ClickOnce 的技巧?

最佳答案

发现于ClickOnce File Association :

问题源于 1 不一定了解 ClickOnce,感谢 codeConcussion 的简要概述。

第二,ClickOnce 不通过传统的 args 格式传递内容,而是通过以下属性传递:AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData

关于c# - 我有一个带有文件关联的 ClickOnce 应用程序,但我遇到了参数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26915066/

相关文章:

c# - ClickOnce发布后找到 'Application Files'目录

c# - 如何在 C# 中不提供全局/静态变量的情况下实现单例模式?

c# - 如何使用 MVVM 验证字符串/正则表达式?

c# - asp.net MVC 如何从 POST 接收数据

deployment - 通过 ClickOnce 部署后,客户端计算机上存储的 dll 在哪里?

C++菜鸟: how can I store code for a class in helper/auxiliary files,却还能访问所有类成员函数?

c# - 格式化我的字符串

c# - Outlook 2007 加载项 C# - 启动路径

c++ - C++ 中函数参数作为 (const int &) 和 (int & a) 的区别

javascript - 使用带有fallthrough的开关来处理Javascript中的默认参数是个好主意吗?