我很确定几个月前我读到了不仅可以启动 Windows 脚本的可能性.bat
,而且还可以启动 Windows 脚本.js
,.vbs
而且.cs
!
今天早上我愿意在 C#.cs
文件中尝试 windows 脚本,但我碰巧在网上找不到任何参考资料。所有 CS/C# 脚本的东西似乎都是第 3 方。
您是否有任何有关 C# for Windows、纯微软风格的命令行脚本的知识参考/链接?
是的,这意味着动态 C# 编译......所以也许我认为这是可能的完全错了。就告诉我嘛。
我很确定几个月前我读到了不仅可以启动 Windows 脚本的可能性.bat
,而且还可以启动 Windows 脚本.js
,.vbs
而且.cs
!
今天早上我愿意在 C#.cs
文件中尝试 windows 脚本,但我碰巧在网上找不到任何参考资料。所有 CS/C# 脚本的东西似乎都是第 3 方。
您是否有任何有关 C# for Windows、纯微软风格的命令行脚本的知识参考/链接?
是的,这意味着动态 C# 编译......所以也许我认为这是可能的完全错了。就告诉我嘛。
如果您正在寻找真正的 C# 开发体验,请尝试CS-Script。
您可以使用注释指令来使用第三方库并包含其他 C# 脚本。
//css_nuget dotnetzip
using Ionic.Zip;
using System;
class Script
{
static public void Main()
{
using(ZipFile zip = new ZipFile())
{
zip.AddFile("app.exe");
zip.AddFile("readme.exe");
zip.Save("app.zip");
}
}
}
就个人而言,我更喜欢,CS-Script
因为我注意到1) 与下面相比更快的脚本启动时间和2)使用namespaces没有问题。你在这里写的 C# 是真正的 C#。VS IDE 可以正常工作。scriptcs
或者,看看scriptcs
也可以用VS写一些简单的脚本:
//MyScript.Main()
public class MyScript{
public static void Main(){
Console.WriteLine("hello world.");
}
}
当您准备好使用 运行脚本时scriptcs
,请删除//
注释。
C:\> scriptcs myscript.cs
此外,您可以使用 nuget 安装 3rd 方包,如NLog
C:\> scriptcs -install NLog
我发现的一个问题scriptcs
是无法使用命名空间。scriptcs
在后台使用 Roslyn 编译器来编译 C# 脚本。不幸的是,Roslyn 在编译脚本时有一个泄漏的设计实现。特别是,为了让 Roslyn 处理 REPL 类型的用例,每个脚本编译都使用嵌套类来存储变量和状态。由于您不能在嵌套的class
using命名空间中拥有命名空间,scriptcs
因此会失败。因此,如果您尝试导入*.cs
包含命名空间的松散文件(例如 VS 项目中的域对象),则需要去除命名空间。
这个糟糕的设计决定给我留下了不好的印象,所以在 Roslyn 团队支持命名空间之前,我主要使用cs-script
选项 A。
为 yoyu 提供强大功能和可用命令的另一个解决方案是PowerShell
:
http ://technet.microsoft.com/en-us/scriptcenter/dd742419
您可以通过 WSH(Windows 脚本主机)运行脚本:http:
//msdn.microsoft.com/en-us/library/9bbdkx3k (v=vs.85).aspx