0

我正在制作一个运行游戏服务器的控制台窗口,我想为各种事情添加命令。由于命令需要参数,我决定使用 ManyConsole nuGet。

我制作了一个测试项目,并将构建的 .dll 添加到我的服务器的引用列表中,但我很难弄清楚如何将输入发送到文本项目 .dll。

我以前从未使用过 PowerShell 来启动应用程序,但我能够毫无问题地在其上运行 ServerCommands 项目,这让我想到也许我应该构建整个服务器以通过 PowerShell 运行,反正整个事情都是静态的。

服务器命令.dll

    public class Program
    {
        public static int Main( string[] args )
        {
            var commands = GetCommands();

            return ConsoleCommandDispatcher.DispatchCommand( commands, args, Console.Out );
        }

        public static IEnumerable<ConsoleCommand> GetCommands()
        {
            return ConsoleCommandDispatcher.FindCommandsInSameAssemblyAs( typeof( Program ) );
        }
    }

服务器

    internal class Program
    {
        private static void Main( string[] args )
        {
            string[] t = new string[1] { "test" };

            ServerCommands.Program.Main( t );
        }
    }

返回错误:System.IO.FileNotFoundException: 'Could not load file or assembly 'System.Runtime, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.'

4

1 回答 1

0

我不确定,但听起来项目目标框架设置可能不匹配?控制台应用“Server”有什么目标框架,ServerCommands.dll 的目标框架是什么?

我假设第二个“服务器”项目具有控制台应用程序的输出类型。

于 2020-05-12T23:30:12.283 回答