如何在c#中只编译一个文件?
在VC ++中,我可以按CTRL + F7编译单个文件,或者右键单击源文件或编译它。 是否可以在C#中编译单个文件(或当前文件)?
我想知道我的当前文件是否有任何错误,而无需编译所有内容。
不,不可能在C#中这样做。
与C ++不同,C#文件无法自行编译,以确定它是否有任何错误。 C ++通过#include
语句实现了这一点,它允许.cpp文件理解可用类型的声明。 这些声明定义了当前文件所依赖的类型的结构,并允许编译器确保根据规范使用它们。
此过程在C#中隐式处理。 可用的声明集只是所有编译文件中所有可以访问的声明的集合。 没有办法以C ++的方式转发声明依赖项,因此无法确保它们在单个文件中正确使用。
对于单个.cs文件,编译+运行:
- 在VS 2008中,转到“工具”>“外部工具”
- 点击“添加”
- 标题:运行CSC(或任何你想要的)
- 命令:C:\ Windows \ system32 \ cmd.exe
- 参数:/ c C:\ Windows \ Microsoft.NET \ Framework \ v3.5 \ csc.exe / target:winexe $(ItemPath)&& $(ItemFileName)
- 初始目录:$(ItemDir)
- 选中使用输出窗口
- 应用+确定
- 转到工具并选择“运行CSC”
如果这不起作用,请validationcmd
和csc
路径是否匹配。
像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将编译当前程序集,这几乎是你想要的。
是的,这是可能的。 您可以使用命令提示符直接调用编译器。 即
- 创建单个文件’hello.cs’
- 打开Visual Studio命令提示符
- 导航到具有’hello.cs’的目录
- 运行
csc hello.cs
- 键入
hello.exe
执行单个文件
这至少会告诉您单个文件是否编译。 您可以在此处找到更多信息: https : //msdn.microsoft.com/en-us/library/78f4aasd.aspx