7

我正在开发需要与 Windows 和 Linux (Mono) 兼容的 ac# 程序。

我正在尝试在两个平台上创建一个符号链接,并且我正在使用 ProcessStartInfo 以使其正常工作。我还没有在 Linux 上尝试过,但在 Windows 上我使用以下代码

ProcessStartInfo process = new ProcessStartInfo();

                    process.CreateNoWindow = true;
                    process.UseShellExecute = false;
                    process.FileName = "mklink";
                    process.WindowStyle = ProcessWindowStyle.Hidden;
                    process.Arguments = "/D " + webFolder + "MyFolder" + webFolder + "MyFolder_" + version;
                    Process.Start(process);

当我运行上面的代码时,我得到

System.ComponentModel.Win32Exception:系统找不到指定的文件

如果我在命令提示符下运行 mklink 它工作正常。

我看过谷歌,它说要执行 [DllImport("kernel32.dll")] 但这在 Linux 上不起作用。

感谢您的任何帮助,您可以提供。

4

1 回答 1

19

mklink是程序的命令cmd.exe,不是独立的程序。

要运行mklink,您必须cmd.exe使用一组适当的参数实际调用,如下所示:

ProcessInfo = new ProcessStartInfo("cmd.exe", "/c mklink " + argumentsForMklink);
于 2012-07-08T19:27:32.053 回答