2013-01-03 91 views
-2
csc /target:library /out:MyMaths.dll ClassLibraryFunction.csproj 

我正在使用此代碼在VS.Cmd編譯器中生成一個用於整個解決方案的DLL。但是,我收到一個編譯錯誤,並沒有生成DLL。如何創建.csproj文件的DLL

+4

這很好。現在有個問題嗎? – Paolo

+1

你在告訴我們還是問我們?更多信息將是好的 – skyfoot

+0

@skyfoot我問,如何在C#中創建一個洞應用程序的DLL# –

回答

6

csc不適用於.csproj文件。您有幾種選擇:

  1. 使用msbuild;例如

    msbuild ClassLibraryFunction.csproj 
    

    指出的是,你可能需要改變輸出型的項目(在IDE中,這是項目屬性,應用程序,輸出類型;在的csproj文件,這是<OutputType>Library</OutputType>

  2. 使用csc/recurse開關;例如:

    csc /target:library /out:MyMaths.dll /recurse:*.cs 
    

    (這將編譯當前文件夾或子文件夾中的所有文件.cs

  3. 做兩手空空,只是使用的exe你已經有;一個.NET exe文件可以像其他任何程序集一樣被引用,並且可以使用任何public類型

+0

@pratikgodha一個項目**可以**一個dll;您只需將項目的輸出設置爲庫。這個詞是「整體」,順便說一句;不是「漏洞」 - 這意味着完全不同的東西。 –

+0

是的,我可以添加庫。到新的應用程序,但那個時候我無法訪問這些類。我想要什麼時,我將創建一個包含類的應用程序1的DLL,當我將創建一個新的應用程序2並附上一個庫。或DLL到應用程序2我將能夠訪問所有的類。 –

+0

@pratikgodha你所說的一切都是圖書館的正常行爲。我唯一的問題很簡單:是「公共」類型嗎?順便說一句:你知道你也可以添加一個exe的引用嗎?所以,即使你的應用程序當前是一個exe文件,你仍然可以**從另一個項目中引用它,並使用這些類型。只要他們是'公衆'。 –