【发布时间】:2020-05-18 09:38:18
【问题描述】:
我正在尝试通过 c# 代码调用一个接受命令行参数的 dll 文件。
当我直接从 cmd 窗口尝试时,它可以工作,但如果我尝试从 C# 调用它,则会显示以下错误:“没有应用程序与此操作的指定文件关联”
示例 cmd 命令 - C:\Users\用户名\source\repos\addconsole\addconsole\bin\Debug\netcoreapp3.1>dotnet AddConsole.dll 1 2 3
static void Main(string[] args)
{
var proc1 = new ProcessStartInfo();
proc1.UseShellExecute = true;
proc1.WorkingDirectory = @"C:\Users\user name\source\repos\addconsole\addconsole\bin\Debug\netcoreapp3.1";
proc1.FileName = @"addconsole.dll";
proc1.Arguments = "1 2 3";
Process.Start(proc1);
}
需要有关此方面的帮助。请注意,此应用程序没有需要调用的 exe 文件,它有一个 dll 文件,该文件具有执行操作的 main 函数。
【问题讨论】:
-
您可以使用 dotnet 运行它吗?或者,由于这已经在 .NET 中,只要您使用兼容的框架,您就可以将程序集加载到新的 appdomain 中,然后通过反射启动它?
-
离题,我知道,但是“一个通过 c# 代码接受命令行参数的 dll 文件” ...我想知道这是谁的想法,背后的原因是什么。
-
目前需要调用的dll文件像控制台一样使用。我的要求是使其成为 web-api,但在需要时将其保留为控制台类型的应用程序。因此,如果我通过命令行并且 args.count > 0 我将使用它们或提示用户通过 console.writline 输入输入。
标签: c# .net asp.net-core dll console-application