Ste*_*and 6 .net c# windows-scripting
我敢肯定,几个月前,我读到推出Windows脚本不仅平常的可能性.bat,而且.js,.vbs和.cs!
我愿意.cs今天早上在C#文件中尝试使用Windows脚本,但我无法在网上找到任何引用.所有CS/C#脚本的东西似乎都是第三方.
你有任何关于C#for Windows命令行脚本的知识参考/链接,纯微软风格?
是的,这意味着动态C#编译......所以也许我认为这是可能的.就告诉我嘛.
如果您正在寻找真正的C#开发体验,请尝试使用CS-Script.
您可以使用comment指令来使用第三方库并包含其他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");
}
}
}
Run Code Online (Sandbox Code Playgroud)
就个人而言,我更喜欢,CS-Script因为我注意到1) 与下面相比,脚本启动时间更快,2)使用命名空间没有问题.你在这里写的C#是真正的C#.VS IDE正常工作.scriptcs
或者,看一下scriptcs
您还可以使用VS编写一些简单的脚本:
//MyScript.Main()
public class MyScript{
public static void Main(){
Console.WriteLine("hello world.");
}
}
Run Code Online (Sandbox Code Playgroud)
当您准备好运行脚本时scriptcs,请删除//注释.
C:\> scriptcs myscript.cs
此外,您可以使用nuget安装第三方软件包 NLog
C:\> scriptcs -install NLog
我发现的一个问题scriptcs是无法使用命名空间.scriptcs引擎盖下使用Roslyn编译器编译C#脚本.不幸的是,Roslyn在编译脚本时有一个漏洞的设计实现.特别是,为了让Roslyn处理REPL类型的用例,每个脚本编译都使用嵌套类来存储变量和状态.由于您无法在嵌套的class使用命名空间中使用命名空间,因此scriptcs将失败.因此,如果您尝试导入*.cs包含名称空间的松散文件(如VS项目中的域对象),则需要删除名称空间.
这个糟糕的设计决定给我留下了不好的印象,所以我主要使用cs-script 选项A,直到Roslyn团队支持命名空间.
| 归档时间: |
|
| 查看次数: |
7488 次 |
| 最近记录: |