如何识别启动我的应用程序的文件

How do I identify the file that launched my application

我正在尝试将应用程序与特定文件类型相关联,然后在应用程序启动时使用该文件。 Create File Associations For a ClickOnce Application:

很简单

这目前有效,所以如果我有一个扩展名为“.tester”的文件,我的 Click Once Deployed 应用程序将会启动。

我遇到的问题是确定启动应用程序的文件

根据问题What Event is Triggered When Opening a Custom File?, the "file should be available from the command line args", and this Scott Hanselman Article confirms

但是,当我添加以下代码时,在启动应用程序时除了可执行文件的路径之外我没有得到任何东西。

Dim args = Environment.GetCommandLineArgs()
MsgBox(Join(args, ", "))

我已确认我正在获取所有命令行参数。当我使用一些虚假参数从实际命令行启动文件时:

C:\FileHandler.exe -foo bar

应用程序将显示以下内容:

如何识别启动应用程序的文件?

ClickOnce 不通过标准命令行参数,而是通过 ActivationArguments

您的文件信息应该可以通过 AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData