2014-03-13 42 views
0

我在C#中使用Visual Studio开发了程序,并在Debug文件夹中生成了.exe文件。我还在Properties-> Debug中添加了命令行参数。从命令提示符处运行.exe文件

传递的PARAMS是d:\实施例\ BIN \发布\ Input_Files \ d:\实施例\ BIN \调试\ trycc.css 900 640

运行通过标记溶液的配置调试此解决方案,它产生Debug文件夹中的.exe文件。

当我试图从命令行运行时,它告诉无法打开某个与.exe相同级别的文件。

D:\>D:\Example\bin\Debug\Example.exe D:\Example\bin\Release\Input_Files\ D:\Example\bin\Debug\trycc.css 900 640 

我不明白我要去哪里错了。请帮助。

这就是:

D:\>D:\Example\bin\Debug\DFu1.exe "D:\Example\bin\Release\I 
nput_Files\" "D:\Example\bin\Release\Input_Files\css\screen.css" "900 
" "830" 
Incomplete Arguments entered. 
Press any key to continue 


Unhandled Exception: System.IO.DirectoryNotFoundException: Could not find a part 
of the path 'C:\Out\elogs.txt'. 
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) 
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, I 
nt32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions o 
ptions, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy) 
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access) 
at ExampleParser.Program.Main(String[] args) in D:\Example\Program.cs:l 
ine 691 
+0

这可能是工作目录的问题,或者您需要将参数放在引号“”之间。你能从命令提示符复制 - 粘贴整个输出吗?如果你不知道怎么做 - 右键单击​​命令提示符窗口,选择线条,单击鼠标右键,它会在你的剪贴板中(你可以比CTRL + V在这里)。 – kape123

+0

我编辑了..请看看 – Aada

回答

0

可能是你的问题是不正确的报价。试图通过这个参数:

"D:\\Example\\bin\\Release\\Input_Files\\" "D:\\Example\\bin\\Debug\\trycc.css" 900 640 

或者:

"D:\Example\bin\Release\Input_Files\" "D:\Example\bin\Debug\trycc.css" 900 640 
+0

在第一种情况下它显示较少的参数。并在第二个抛出相同的错误,如下所述 – Aada

+0

@Aada,请在你处理参数的地方显示你的代码。 – 2014-03-13 18:13:52

+0

@Kirill,你可以在Program.cs:691行显示你的代码吗? – 2014-03-13 18:14:41

0

看样子你引用一个目录(文件夹)D:\Out'不存在,首先确保目录存在,如果它是正确的DIR。如果不是,则应用有可能使用相对路径(例如..\SomeDir\)而不是绝对路径,因此代码需要更改以正确定位此目录。一个简单,快捷的方式来证明应用的工作原理,是先cd到它位于何处并运行该路径的exe文件的目录:

cd D:\Example\bin\Debug 

Example.exe D:\Example\bin\Release\Input_Files\ D:\Example\bin\Debug\trycc.css 900 640 

如果你实际上有相对路径,请记住,如果应用程序(.exe)位于D:\Example\bin\Debug中,并且您有一个目录D:\Example\bin\Out,并且代码尝试使用..\Out读取/写入该“Out”目录,如果应用程序直接从\ bin \ Debug运行,它将成功。但是,如果您从D:\MyOtherDir\Test运行应用程序(是的,即使您传递完整路径D:\ Example \ bin \ Debug \ Example.exe),它将解析为D:\ MyOtherDir \ Out,相对路径是基于当前的工作目录,而不是exe的位置。

相关问题