2014-09-03 104 views
0

我有一個文件夾。在那裏我有三個cs文件。如何通過命令提示編譯C#應用程序

Demo.cs

using System; 

namespace Demo 
{ 
    public class Test 
    { 
     public static Entity entity = new Entity(); 

     public static void Main(string[] args) 
     { 
      var objectHandler = Activator.CreateInstance(null, 
                 args); 
      var obj = objectHandler.Unwrap(); 
      entity.GetAnnotation(obj.GetType()); 
     } 
    } 
} 

Entity.cs

using System; 

namespace Demo 
{ 
    public class Entity 
    { 
     public void GetAnnotation(Type classname) 
     { 
      Attribute[] dataAnnotationlist = Attribute.GetCustomAttributes(propInfo); 
      foreach (var dataannotationAttribute in dataAnnotationlist) 
      { 
       //some operation to get annotation property from Employee.cs class 
      } 
     } 
    } 
} 

Employee.cs

using System.ComponentModel.DataAnnotations; 

namespace Demo 
{ 
    public class Employee 
    { 
     [Display(Name = "name")] 
     public string name { get; set; } 
    } 
} 

我創建XML文件格式從類文件(Employee.cs)使用反射。 但嘗試運行命令提示符時發生錯誤。它運行在visual studio中。

我想使用命令提示符將「Employee.cs」作爲字符串參數傳遞給Main方法來運行Test.cs,Entity.cs。 現在,我已經通過硬編碼爲,

System.Runtime.Remoting.ObjectHandle objectHandler = Activator.CreateInstance(null, "Demo.Employee"); 

其工作正常,但如何通過命令傳遞。

發生錯誤是:

Entity.cs(8.29):錯誤CS0234:類型或命名空間名稱 'DataAnnotations' 不存在命名空間 存在 'System.ComponentModel'(你缺少程序集引用)Entity.cs(9,19):錯誤CS0234:類型或命名空間名稱 「對象」 在命名空間「System.Data」(是否缺少一個 集引用不存在的)員工.cs(6,33):錯誤CS0234:名稱空間「System.ComponentModel」中不存在類型或名稱空間名稱'DataAnnotations' (您是否缺少 程序集參考?)

並且它還顯示「DataAnnotations」和「Objects」的錯誤。

我該如何解決這個問題?

+1

你是什麼意思「當試圖運行命令提示符」?你能顯示你使用的命令嗎? – 2014-09-03 05:38:46

+0

System.Data.DataAnnotations命名空間的成員在System.ComponentModel.DataAnnotations.dll程序集中聲明。它是否被引用? – jmcilhinney 2014-09-03 05:41:23

+1

csc /out:Test.exe Test.cs Entity.cs Employee.cs – user3582190 2014-09-03 05:42:14

回答

0

一個選項簡單build .csproj with MSBUILD

更有趣的是通過csc的命令行參數自己配置所有依賴項。爲了您的即時錯誤,你需要用/r:命令類似添加到以下

csc /out:Test.exe /r:System.ComponentModel.DataAnnotations.dll *.cs 

有關的CSC查看幫助csc /?或MSDN CSC command line optionsBuilding with CSC命令行參數的詳細信息參考資料。

+0

我嘗試它的工作,但如何將類作爲參數傳遞給Test.cs中的主要方法使用命令提示符 – user3582190 2014-09-03 06:55:19

+0

@ user3582190您是否在尋找'test.exe arg1'?如何從命令行運行可執行文件並將參數傳遞給它將會成爲焦點話題。如果這是你真正的問題 - 請考慮http://superuser.com獲取更多信息... – 2014-09-03 07:02:48

+0

是的,我正在尋找Test.exe arg1,但在這裏我傳遞類名作爲參數。 – user3582190 2014-09-03 07:06:27

相關問題