簡體   English   中英

如何在c#中只編譯一個文件?

[英]How to compile just one file in c#?

在VC ++中,我可以按CTRL + F7編譯單個文件,或者右鍵單擊源文件或編譯它。 是否可以在C#中編譯單個文件(或當前文件)?

我想知道我的當前文件是否有任何錯誤,而不必編譯所有內容。

對於單個.cs文件,編譯+運行:

  1. 在VS 2008中,轉到“工具”>“外部工具”
  2. 點擊“添加”
  3. 標題:運行CSC(或任何你想要的)
  4. 命令:C:\\ Windows \\ system32 \\ cmd.exe
  5. 參數:/ c C:\\ Windows \\ Microsoft.NET \\ Framework \\ v3.5 \\ csc.exe / target:winexe $(ItemPath)&& $(ItemFileName)
  6. 初始目錄:$(ItemDir)
  7. 選中使用輸出窗口
  8. 應用+確定
  9. 轉到工具並選擇“運行CSC”

如果這不起作用,請驗證cmdcsc路徑是否匹配。

不,不可能在C#中做到這一點。

與C ++不同,C#文件無法自行編譯,以確定它是否有任何錯誤。 C ++通過#include語句實現了這一點,它允許.cpp文件理解可用類型的聲明。 這些聲明定義了當前文件所依賴的類型的結構,並允許編譯器確保根據規范使用它們。

此過程在C#中隱式處理。 可用的聲明集只是所有編譯文件中所有可以訪問的聲明的集合。 沒有辦法以C ++的方式轉發聲明依賴關系,因此無法確保它們在單個文件中正確使用。

像ReSharper這樣的Visual Studio加載項工具對於這種情況是一項非常好的投資。

ReSharper執行連續的后台解決方案范圍的代碼分析,並通過在代碼文件\\文檔滾動條旁邊方便地顯示一個條來報告問題,該條帶有紅色\\橙色線,表示任何有問題\\錯誤的代碼行。 顯示的行可以單擊導航到相關行,還有工具提示,詳細說明了確切的問題:

http://www.jetbrains.com/resharper/features/code_analysis.html#Continuous_Code_Quality_Analysis

http://www.jetbrains.com/resharper/features/screenshots/50/marker_bar.png

ReSharper可以檢查的問題\\警告是可配置的(但是它具有開箱即用的優秀配置),並且可以表示任何錯誤,這些錯誤會導致代碼無法編譯到檢測到可能的更微妙的問題null方法調用結果,尚未明確檢查。

在命令行中:%windir%\\ Microsoft.Net \\ framework \\ V3.5 \\ csc.exe / target:library File.cs

您可以通過工具 - >外部工具將其合理地附加到解決方案資源管理器上下文菜單中

將參數設置為/ target:library $(ItemPath)

這樣的事情可能會做你想要的。 雖然除了GAC中的內容之外,文件不得依賴於項目中的其他文件或引用的二進制文件。

Shift-F6將編譯當前程序集,這幾乎是你想要的。

是的,這是可能的。 您可以使用命令提示符直接調用編譯器。

  1. 創建單個文件'hello.cs'
  2. 打開Visual Studio命令提示符
  3. 導航到具有'hello.cs'的目錄
  4. 運行csc hello.cs
  5. 鍵入hello.exe執行單個文件

這至少會告訴您單個文件是否編譯。 您可以在此處找到更多信息: https//msdn.microsoft.com/en-us/library/78f4aasd.aspx

是的,這可以使用Mono .NET Framework完成。 在命令提示符下,運行mcs path/to/file.cs

來自Mono文檔

要編譯,請使用csc:

 csc hello.cs 

注意:csc編譯器不適用於所有平台或非常老的Mono版本,在這種情況下使用mcs代替。

編譯器將創建“hello.exe”,您可以使用以下命令運行:

 mono hello.exe 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM