Visual Studio 如何在C#中只编译一个文件?

k2fxgqgv  于 2022-11-17  发布在  C#
关注(0)|答案(8)|浏览(447)

在VC++中,我可以按CTRL+F7来编译单个文件,或者右键单击源文件来编译它。在C#中是否可以编译单个文件(或当前文件)?
例如,我想知道我当前的文件是否有任何错误,而不必编译一切。

gg0vcinb

gg0vcinb1#

对于单个.cs文件编译+运行:
1.在VS 2008中,转到“工具”〉“外部工具”
1.点击“添加”
1.标题:运行CSC(或任何您想要的)
1.命令:C:\Windows\系统32\cmd.exe
1.参数:/c C:\Windows\Microsoft. NET\框架\v3.5\csc.exe/目标:winexe $(项目路径)&& $(项目文件名)
1.初始目录:$(项目目录)
1.选中使用输出窗口
1.应用+确定
1.转到“工具”并选择“运行CSC”
如果这不起作用,请验证cmdcsc的路径是否匹配。

ldxq2e6h

ldxq2e6h2#

不,在C#中不可能这样做。
与C不同,C#文件不能合理地自己编译以确定它是否有任何错误。C通过#include语句实现这一点,该语句允许.cpp文件理解可用类型的声明。这些声明定义了当前文件所依赖的类型的结构,并允许编译器确保根据规范使用它们。
这个过程在C#中是隐式处理的。可用的声明集只是所有编译文件中的所有声明集,这些文件是可以访问的。没有办法像C++那样向前声明依赖项,因此没有办法确保它们在单个文件中被正确使用。

lymnna71

lymnna713#

对于这种情况,像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](http://www.jetbrains.com/resharper/features/screenshots/50/marker_bar.png)

ReSharper可以检查的问题/警告是可配置的(但它有很好的现成配置),可以表示任何事情,从导致代码无法编译的错误到更微妙的问题,即它检测到可能的空方法调用结果,而这些结果没有被显式检查。

nzrxty8p

nzrxty8p4#

在命令行中:文件系统
您可以通过Tools-〉External Tools将其合理地附加到解决方案浏览器的上下文菜单中
将参数设置为/target:library $(ItemPath)
类似的东西可能会做你想做的事情。虽然文件必须不依赖于项目中的其他文件,或者除了GAC中的文件之外的引用的二进制文件。

umuewwlo

umuewwlo5#

Shift-F6将编译当前的程序集,它 * 几乎 * 是您想要的。

eyh26e7m

eyh26e7m6#

是的,这是可能的。你可以使用命令提示符直接调用编译器。
1.创建单个文件'hello.cs'
1.打开Visual Studio命令提示符
1.导航到包含“hello.cs”的目录
1.运行csc hello.cs
1.通过键入hello.exe执行单个文件
这至少会告诉你一个文件是否编译成功。你可以在这里找到更多的信息:https://msdn.microsoft.com/en-us/library/78f4aasd.aspx

zxlwwiss

zxlwwiss7#

是的,可以使用Mono .NET Framework来完成。在命令提示字符中,执行mcs path/to/file.cs
Mono docs
要进行编译,请使用csc:

csc hello.cs

注意:csc编译器并不是在所有平台上都可用,或者在非常旧的Mono版本中可用,在这种情况下,请使用mcs。
编译器将创建“hello.exe”,您可以使用以下命令运行它:

mono hello.exe
axr492tv

axr492tv8#

使用Visual Studio 2022 csc.exe
在PowerShell中导航到此处:
PS C:\程序文件\Microsoft Visual Studio \2022\社区\消息库\当前\二进制文件\罗斯林
将单个文件编译为dll或exe:
.\csc.exe-目标:库-输出:“C:\用户\快捷\OneDrive\桌面\C#\永久日历\永久日历.dll”“C:\用户\快捷\OneDrive\桌面\C#\永久日历\永久日历.cs”
cs文件需要主方法。\csc.exe-目标:exe -输出:“C:\用户\快捷\OneDrive\桌面\C#\永久日历\永久日历.exe”“C:\用户\快捷\OneDrive\桌面\C#\永久日历\永久日历.cs”

相关问题