ClickOnce 应用程序不接受命令行参数

2023-12-31

我有一个采用命令行参数的 VB.NET 应用程序。

如果我关闭 Visual Studio 的 ClickOnce 安全设置,调试时它可以正常工作。

当我尝试通过 ClickOnce 在计算机上安装应用程序并尝试使用参数运行它时,会出现此问题。当这种情况发生时我会崩溃(哦不!)。

此问题有一个解决方法:将文件从最新版本的发布文件夹移动到计算机的 C: 驱动器,并从 .exe 中删除“.deploy”。从 C: 驱动器运行应用程序,它将很好地处理参数。

有没有比我上面的解决方法更好的方法来让它发挥作用?

Thanks!


“命令行参数”仅适用于从 URL 运行的 ClickOnce 应用程序。

例如,您应该这样启动应用程序以附加一些运行时参数:

我有以下 C# 代码,用于解析 ClickOnce 激活 URL 和命令行参数:

public static string[] GetArguments()
{
    var commandLineArgs = new List<string>();
    string startupUrl = String.Empty;

    if (ApplicationDeployment.IsNetworkDeployed &&
        ApplicationDeployment.CurrentDeployment.ActivationUri != null)
    {
        // Add the EXE name at the front
        commandLineArgs.Add(Environment.GetCommandLineArgs()[0]);

        // Get the query portion of the URI, also decode out any escaped sequences
        startupUrl = ApplicationDeployment.CurrentDeployment.ActivationUri.ToString();
        var query = ApplicationDeployment.CurrentDeployment.ActivationUri.Query;
        if (!string.IsNullOrEmpty(query) && query.StartsWith("?"))
        {
            // Split by the ampersands, a append a "-" for use with splitting functions
            string[] arguments = query.Substring(1).Split(new[] { '&' }, StringSplitOptions.RemoveEmptyEntries).Select(a => String.Format("-{0}", HttpUtility.UrlDecode(a))).ToArray();

            // Now add the parsed argument components
            commandLineArgs.AddRange(arguments);
        }
    }
    else
    {
        commandLineArgs = Environment.GetCommandLineArgs().ToList();
    }

    // Also tack on any activation args at the back
    var activationArgs = AppDomain.CurrentDomain.SetupInformation.ActivationArguments;
    if (activationArgs != null && activationArgs.ActivationData.EmptyIfNull().Any())
    {
        commandLineArgs.AddRange(activationArgs.ActivationData.Where(d => d != startupUrl).Select((s, i) => String.Format("-in{1}:\"{0}\"", s, i == 0 ? String.Empty : i.ToString())));
    }

    return commandLineArgs.ToArray();
}

这样我的主要功能如下所示:

    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main()
    {
        var commandLine = GetArguments();
        var args = commandLine.ParseArgs();

        // Run app
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ClickOnce 应用程序不接受命令行参数 的相关文章

  • 用户完成后关闭 Excel

    任务非常简单 我想从 VB net GUI 打开 Excel 文档 xls 用户将处理 Excel 文件 用户完成后关闭 Excel 文件 我想要VB net代码释放Excel对象 问题是 当用户关闭文件时 Excel 对象仍然可以在任务管
  • 按下 Tab 键时 PictureBox 抛出“参数无效”ArgumentException

    我有一个表单 用户可以首先扫描到位图 扫描完成并加载位图后 我将启用 4 个文本框 每个文本框旁边都有一个名为 从图像剪切 的按钮 当用户单击该按钮时 他们可以在位图中单击并拖动以使用 MODI 获取选定的文本 除了一个恼人的错误之外 这一
  • 通过 VB.NET 和 C# 中的 Ref 参数

    我有与传递参数 byRef 相关的问题 我有基于 VB NET 的类库 其中一些函数是使用 byref 参数类型定义的 这些参数是父类对象 当我尝试调用此函数并在 byref 参数中传递子类对象时 它在 VB NET 中工作 但我无法在 C
  • VB.NET 中字节数组的数组

    我需要一个数组 数组中的每个项目都是这样的字节数组 但我不知道如何执行以下操作 Dim xx as array xx 0 as byte H12 HFF xx 1 as byte H45 HFE 您可以像这样创建嵌套或 锯齿状 字节数组 D
  • VB.NET 空合并运算符? [复制]

    这个问题在这里已经有答案了 可能的重复 VB NET 中的合并运算符和条件运算符 https stackoverflow com questions 629036 coalesce operator and conditional oper
  • 我可以快速将我的组件替换为自定义主题的组件吗?

    我想通过使用自定义创建的主题来改善程序的外观 如下所示 http www mpgh net forum 33 visual basic programming 492570 biesis vb net theme archive html
  • vb.net 中的简单 rot13 编码器

    我正在寻找一种简单的方法将输入的文本编码为 Rot13 在能够将单词分离为单个字符和整数以便我可以更改每个字符并输出结果的阶段 我遇到了困难 我可以使用下面列出的简单 if 语句来使用单个字母来完成此操作 但如果有人可以帮助找到整个单词的方
  • 增加超时时间

    我必须增加超时时间 以下是我的代码 Private Function GetConnectionInstance As SqlConnection Dim objConn As SqlConnection Dim strConnection
  • 将 Excel 单元格对齐到中心 VB - xlCenter 未声明

    我使用 Visual Studio 2013 Visual Basic MS ACCESS 2013 EXCEL 2013 我的程序将数据另存为数据网格中的数据以进行Excel处理 我使用access 2013作为我的数据库 这是我的代码
  • 如何从vb.net插入两个表

    我想将两个值插入到我创建的 SQL 数据库的两个表中 在我的 vb net 代码中 我的问题是 如果我插入它 它会被插入 但仅在一张表中 否则有时它不会进入内部 这是我使用过的代码 c TextBox1 Text sh TextBox2 T
  • 将 C# Web 表单添加到 VB Web 应用程序

    有没有办法将 C Web 窗体添加到用 VB NET 编写的 ASP NET 4 0 Web 应用程序中 我有一个 ASP NET 2 0WEB SITE我最近转换为 ASP NET 4 0WEB应用程序 它主要是用 VB NET 编写的
  • 将图像另存为“位图图像”以访问数据库

    我能够使用内存流成功将图像保存到 Access 数据库表 我保存图像的列的数据类型为 OLEObject 当我打开表时 我在此图像列中看到 长二进制数据 值 问题是 当我在此数据库中创建任何报告时 我无法看到图像 而当我在MSPaint中打
  • 忽略不区分大小写的字典键中的连字符

    我在 asp net vb net 中有一个不区分大小写的字典 如下所示 Dim caseInsensitiveDictionary New Dictionary Of String Single StringComparer Ordina
  • 停止 ASP.NET 按钮的页面重新加载

    NET 应用程序中 我插入了一个调用 Javascript 函数的按钮 OnClientClick事件 和 VB NET 函数 OnClick event
  • 使用 LINQ 和 C# 的随机数组

    我在 MSDN 杂志上读到一篇关于使用LINQ 中的枚举类 http msdn microsoft com en us magazine cc700332 aspx生成随机数组 本文使用 VB NET 我不能立即确定 C 中的等效项是什么
  • VB.NET 中的“阴影”与“覆盖”

    这两个关键词有什么意义Shadows http msdn microsoft com en us library 1h3wytf6 aspx and 覆盖 http msdn microsoft com en us library k777
  • 如何判断一个类是否被某个特定属性修饰

    我试图确定接口是否用特定属性装饰 例如我有以下界面
  • 检查有效的 IMEI

    有人知道如何检查有效的 IMEI 吗 我找到了一个可以检查此页面的功能 http www dotnetfunda com articles article597 imeivalidator in vbnet aspx http www do
  • 将 .NET P/Invoke 代码组织为 Win32 API 的最佳实践

    我正在 NET 中重构一个大型且复杂的代码库 该代码库大量使用 P Invoke to Win32 API 该项目的结构不是最好的 我发现 DllImport 语句遍布各处 经常为同一函数重复 并且还以多种方式声明 导入指令和方法有时声明为
  • 使用 VB.NET 检查 Word 文档中的字体样式

    我想使用vb net检查一个word文件 并检查文档中的样式是否正确 我必须在word文档中检查这些表达式 a Verdana 16 pt Bold Red b Verdana 12 pt Bold Italic Blue c Verdan

随机推荐