![](/img/trans.png)
[英]How to reproduce Visual Studio ClickOnce publish from command line
[英]How to get command line from a ClickOnce application?
在发布之前,我去了Project - > Properties - > Options - > File Associations,并添加了扩展名“.hsp”。 设置一个图标和一个ProgID(“MyCompany.Document.1”用于测试)。 在我发布和安装之后,我的.hsp文件有我设置的图标,因此应该正确设置文件关联,但是当我双击其中一个文件时应用程序运行,我希望我双击的文件的名称是在命令行中。 我尝试读取传递给我的Main
函数的参数,尝试了Environment.CommandLine
,并尝试了Environment.GetCommandLineArgs()
,但我发现的唯一的东西就是应用程序路径。 顺便说一下,在Main
函数中创建主窗体之前,我正在进行所有这些检查,只是为了测试。 args
参数为空,另外两个只包含我的应用程序路径。
这是我的Main
功能的开始:
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的文档:
http://msdn.microsoft.com/en-us/library/system.runtime.hosting.activationarguments.aspx
另外还有一个关于向“已发布”项目添加文件关联的教程:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.