在VC++中,我可以按CTRL + F7来编译单个文件,或者右键单击源文件进行编译。 是否有可能在C#中编译单个文件(或当前文件)?如何在c#中编译一个文件?
我想例如知道我的当前文件是否有任何错误,而无需编译所有内容。
在VC++中,我可以按CTRL + F7来编译单个文件,或者右键单击源文件进行编译。 是否有可能在C#中编译单个文件(或当前文件)?如何在c#中编译一个文件?
我想例如知道我的当前文件是否有任何错误,而无需编译所有内容。
不,这是不可能在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的可检查可配置(但它具有出色的配置),并且可以表示任何错误,这些错误会导致代码不能编译为更微妙的问题,因为它检测到可能的空方法调用结果,该结果尚未明确检查。
Shift-F6会编译当前程序集,它是差不多你想要的。
VS的哪个版本是这样的?我试过Shift + F6,什么都没有发生。 – 2015-07-06 19:30:00
这可能是2008年,因为它是在2010年发布。 – 2015-07-07 13:58:46
在命令行: %WINDIR%\ Microsoft.Net \框架\ V3.5 \ CSC.EXE /目标:库File.cs
你可以合理地附加至该解决方案通过探险工具上下文菜单 - >外部工具
设置参数/目标:库$(ItemPath)
类似的东西可能会做你想要什么。尽管该文件不得不依赖项目中的其他文件或除了GAC中的引用二进制文件。
对于单cs文件编译+运行:
如果这不起作用,验证您的路径,cmd
和csc
匹配。
出色的工作。 此外,如果您使用的是Visual Studio 2010,请在步骤5中将** v3.5 **替换为** v4.0.30319 **。 – 2014-08-08 03:17:17
是的,这是可能的。您可以使用命令提示符直接调用编译器。即
csc hello.cs
hello.exe
这将至少告诉你单个文件是否编译。你可以在这里找到更多的信息:https://msdn.microsoft.com/en-us/library/78f4aasd.aspx
编译单个程序集时,C#编译器*非常快*,甚至包含大量代码的程序集。你确定你真的被这个问题困扰吗? – 2010-07-23 17:29:14