如何在c#中只编译一个文件?

在VC ++中,我可以按CTRL + F7编译单个文件,或者右键单击源文件或编译它。 是否可以在C#中编译单个文件(或当前文件)?

我想知道我的当前文件是否有任何错误,而无需编译所有内容。

不,不可能在C#中这样做。

与C ++不同,C#文件无法自行编译,以确定它是否有任何错误。 C ++通过#include语句实现了这一点,它允许.cpp文件理解可用类型的声明。 这些声明定义了当前文件所依赖的类型的结构,并允许编译器确保根据规范使用它们。

此过程在C#中隐式处理。 可用的声明集只是所有编译文件中所有可以访问的声明的集合。 没有办法以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”

如果这不起作用,请validationcmdcsc路径是否匹配。

像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