2014-03-13 43 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的位置。

相關問題