使用NPPExec脚本从Notepad++中使用csc.exe编译C#代码

3

我在编写一个NPPExec脚本(用于Notepad++)来使用Microsoft的csc.exe编译C#源代码时遇到了麻烦。对于我的c++项目,我没有问题地使用MinGW,但是相同的脚本结构似乎对于C#并不起作用。有人有一个可用的C# NPPExec脚本吗?

三个快速注意事项:

  1. 虽然我的mingw安装在没有空格的路径下(\MinGW\bin),但似乎我的C#编译器被深埋在\Program Files\中,这是一个带有多个空格的路径。这有关系吗?

  2. 我能够使用Microsoft SDK安装的命令提示符进行编译(我认为它设置了一些环境变量),因此我知道编译器有效。

  3. 在NPPExec选项框中,我已选择FOLLOW $(CURRENT_DIRECTORY)。这有影响吗?

谢谢。

1个回答

18

以下是我为 C# (.NET 3.5) 编写的 nppexec 脚本,可用于编译当前打开的文件并运行:

"c:\WINDOWS\Microsoft.NET\Framework\v3.5\csc.exe" /out:"$(FULL_CURRENT_PATH).exe" "$(FULL_CURRENT_PATH)"
"$(FULL_CURRENT_PATH).exe"

在“插件 -> NppExec”菜单中:

Select "Save all files on execute"
Select "Follow $(CURRENT_DIRECTORY)".

你的问题的答案如下:
1) 使用双引号(")来表示像我的配置一样的csc完整路径。
2) 至少对于.NET 3.5,只需要完整路径到csc就足够了,不需要加载VS环境变量。
3) 最好选择“FOLLOW $(CURRENT_DIRECTORY)”,这样编译后的EXE文件会在相同的目录下。


抱歉,我还没有足够的声望来点赞。等我有了再来。 - MikeRand
你真是个救星。在最终偶然发现你的回答之前,我已经查阅了很多在线资源来解决这个问题。非常感谢你。 - daOnlyBG
请注意,如果您想使用更高版本的编译器,请运行“nuget install Microsoft.Net.Compilers -OutputDirectory "C:\wherever"”,然后引用输出目录中指定的csc.exe,而不是上面提到的那个。欲获取更多信息,请访问此处:https://github.com/dotnet/roslyn - Shenk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接