Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 正在ProcessStartInfo中运行“mklink”_C#_Process_Symlink - Fatal编程技术网

C# 正在ProcessStartInfo中运行“mklink”

C# 正在ProcessStartInfo中运行“mklink”,c#,process,symlink,C#,Process,Symlink,我正在开发一个需要与Windows和Linux(Mono)兼容的c#程序 我正在尝试在这两个平台中创建一个符号链接,我正在使用ProcessStartInfo以使其正常工作。我还没有在Linux上尝试过,但在Windows上我使用了以下代码 ProcessStartInfo process = new ProcessStartInfo(); process.CreateNoWindow = true; proces

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

我正在尝试在这两个平台中创建一个符号链接,我正在使用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.Win32异常:系统找不到该文件 指定的

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

我看过Google,它说要做一个[DllImport(“kernel32.dll”)],但这在Linux上不起作用


谢谢你能提供的帮助

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

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

ProcessInfo = new ProcessStartInfo("cmd.exe", "/c mklink " + argumentsForMklink);

很高兴能帮助。。。请注意,当您在Linux上运行此命令时(假设您运行的是C#there),您可能不需要通过shell运行mklink(做得不多,所以不是100%确定)。我认为没有mklink命令,所以我需要为Linux运行单独的命令,即
ln-fs source target
。我先做一个检查,看看它在哪个操作系统上运行,并相应地执行命令。@Boardy:说得好
ln
是一个独立的命令(我相信),因此在Linux下不需要外壳处理器。我在远程机器上通过
PSEXEC\\someserver mklink…
运行
mklink
时遇到问题。您的回答给了我一个关键提示,让我改用
PSEXEC\\someserver cmd/c mklink…
,效果很好。