在VC++中,我可以按CTRL+F7来编译单个文件,或者右键单击源文件来编译它。在C#中是否可以编译单个文件(或当前文件)?例如,我想知道我当前的文件是否有任何错误,而不必编译一切。
gg0vcinb1#
对于单个.cs文件编译+运行:1.在VS 2008中,转到“工具”〉“外部工具”1.点击“添加”1.标题:运行CSC(或任何您想要的)1.命令:C:\Windows\系统32\cmd.exe1.参数:/c C:\Windows\Microsoft. NET\框架\v3.5\csc.exe/目标:winexe $(项目路径)&& $(项目文件名)1.初始目录:$(项目目录)1.选中使用输出窗口1.应用+确定1.转到“工具”并选择“运行CSC”如果这不起作用,请验证cmd和csc的路径是否匹配。
cmd
csc
ldxq2e6h2#
不,在C#中不可能这样做。与C不同,C#文件不能合理地自己编译以确定它是否有任何错误。C通过#include语句实现这一点,该语句允许.cpp文件理解可用类型的声明。这些声明定义了当前文件所依赖的类型的结构,并允许编译器确保根据规范使用它们。这个过程在C#中是隐式处理的。可用的声明集只是所有编译文件中的所有声明集,这些文件是可以访问的。没有办法像C++那样向前声明依赖项,因此没有办法确保它们在单个文件中被正确使用。
#include
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可以检查的问题/警告是可配置的(但它有很好的现成配置),可以表示任何事情,从导致代码无法编译的错误到更微妙的问题,即它检测到可能的空方法调用结果,而这些结果没有被显式检查。
nzrxty8p4#
在命令行中:文件系统您可以通过Tools-〉External Tools将其合理地附加到解决方案浏览器的上下文菜单中将参数设置为/target:library $(ItemPath)类似的东西可能会做你想做的事情。虽然文件必须不依赖于项目中的其他文件,或者除了GAC中的文件之外的引用的二进制文件。
umuewwlo5#
Shift-F6将编译当前的程序集,它 * 几乎 * 是您想要的。
eyh26e7m6#
是的,这是可能的。你可以使用命令提示符直接调用编译器。1.创建单个文件'hello.cs'1.打开Visual Studio命令提示符1.导航到包含“hello.cs”的目录1.运行csc hello.cs1.通过键入hello.exe执行单个文件这至少会告诉你一个文件是否编译成功。你可以在这里找到更多的信息:https://msdn.microsoft.com/en-us/library/78f4aasd.aspx
csc hello.cs
hello.exe
zxlwwiss7#
是的,可以使用Mono .NET Framework来完成。在命令提示字符中,执行mcs path/to/file.cs。从Mono docs:要进行编译,请使用csc:
mcs path/to/file.cs
注意:csc编译器并不是在所有平台上都可用,或者在非常旧的Mono版本中可用,在这种情况下,请使用mcs。编译器将创建“hello.exe”,您可以使用以下命令运行它:
mono hello.exe
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”
8条答案
按热度按时间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”
如果这不起作用,请验证
cmd
和csc
的路径是否匹配。ldxq2e6h2#
不,在C#中不可能这样做。
与C不同,C#文件不能合理地自己编译以确定它是否有任何错误。C通过
#include
语句实现这一点,该语句允许.cpp文件理解可用类型的声明。这些声明定义了当前文件所依赖的类型的结构,并允许编译器确保根据规范使用它们。这个过程在C#中是隐式处理的。可用的声明集只是所有编译文件中的所有声明集,这些文件是可以访问的。没有办法像C++那样向前声明依赖项,因此没有办法确保它们在单个文件中被正确使用。
lymnna713#
对于这种情况,像ReSharper这样的Visual Studio外接程序工具是非常好的投资。
ReSharper执行持续的后台解决方案范围的代码分析,并将通过在代码文件/文档滚动条旁边显示一个条来报告问题,滚动条上有红色/橙子的线,表示任何有问题/错误的代码行。显示的行可以点击导航到有问题的行,也有工具提示,详细说明确切的问题是什么:
http://www.jetbrains.com/resharper/features/code_analysis.html#Continuous_Code_Quality_Analysis
ReSharper可以检查的问题/警告是可配置的(但它有很好的现成配置),可以表示任何事情,从导致代码无法编译的错误到更微妙的问题,即它检测到可能的空方法调用结果,而这些结果没有被显式检查。
nzrxty8p4#
在命令行中:文件系统
您可以通过Tools-〉External Tools将其合理地附加到解决方案浏览器的上下文菜单中
将参数设置为/target:library $(ItemPath)
类似的东西可能会做你想做的事情。虽然文件必须不依赖于项目中的其他文件,或者除了GAC中的文件之外的引用的二进制文件。
umuewwlo5#
Shift-F6将编译当前的程序集,它 * 几乎 * 是您想要的。
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
zxlwwiss7#
是的,可以使用Mono .NET Framework来完成。在命令提示字符中,执行
mcs path/to/file.cs
。从Mono docs:
要进行编译,请使用csc:
注意:csc编译器并不是在所有平台上都可用,或者在非常旧的Mono版本中可用,在这种情况下,请使用mcs。
编译器将创建“hello.exe”,您可以使用以下命令运行它:
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”