2013-10-20 34 views
1

快速問題。我明顯有一個cs文件,我試圖通過cmd創建dll。當我tr我得到一個CS0246錯誤,說無法找到命名空間。如何將該程序集引用與該文件相結合,以便我不會收到此錯誤。我在想,我需要將程序集放在與我的cs文件相同的區域內。我會試試這個,如果這是問題,我會發布。同時歡迎任何建議。我不想在Visual Studio中這樣做,所以請不要這樣做。將.cs轉換爲.dll文件CS0246錯誤

+1

快速谷歌查詢:http://social.msdn.microsoft.com/Forums/en-US/f73ea717-0bad-4335-8a35-130847eae231/how-to-specify-dll-library-path-in-csc - 命令行 – Matten

+0

@Matten好的......所以我參考了他們的想法。但是,我引用的.dll需要與我的.cs文件位於同一位置嗎?我自己在桌面上有我的.cs文件,這就是爲什麼我問。 – Brandon

+0

它應該與你的.exe一起,當你編譯它足以完全限定它。 – Matten

回答

1

添加/r參數(/reference的簡寫)。請記住,一個類型可以存在名稱空間A.B.C,但這並不意味着該類型包含在程序集A.B.C中。一個程序集可以有一個數量很多的名稱空間,其中包含類型。

csc /t:library /t:library /lib:"C:\Program Files (x86)\Reference Assemblies\Microsoft\WindowsPowerShell\v1.0" /r:System.Data.dll /r:System.Activities.dll /r:System.Management.Automation.dll CopyFile.cs 

如果您引用的組件是在不同的文件夾,你可以添加/lib argument指定探測的文件夾。

+0

我將在原始問題中發佈文件的代碼,但這裏是我在cmd csc/t中所做的:library /r:System.Data.dll /r:System.Activities.dll /r:System.Management.Automation.dll CopyFile .cs – Brandon

+0

「InvokePowershell」在哪裏? – rene

+0

上面編輯的答案適用於引用,但不編譯,因爲我們錯過了使用InvokePowershell,InArgument和ArgumentValue的程序集 – rene