标签: scriptcs

scriptcs hosting - 优于Roslyn的优势

如果我想支持脚本在我的应用程序,确实scriptcs只是用普通的香草在提供任何特别的优势罗斯林脚本引擎?

roslyn scriptcs

24
推荐指数
1
解决办法
3157
查看次数

如何在scriptcs csx脚本中定义扩展方法

我正在使用ScriptCS(这很棒!)但我无法弄清楚如何在.csx脚本文件中定义扩展方法.

举个例子:

using System.IO;

public static class Extensions
{
    public static string Remove(this string source, params string[] toRemove)
    {
        foreach(var r in toRemove)
        {
            source = source.Replace(r,"");
        }
        return source;
    }
}

string[] entries = 
    Directory
        .GetFiles(
            @"C:\Users\blah\blah",
            "*.mp4",
            SearchOption.AllDirectories)
    .Select( p => p.Remove("Users"))
    .ToArray();

foreach(var e in entries)
{
    Console.WriteLine(e);
}
Run Code Online (Sandbox Code Playgroud)

这会产生错误:

错误CS1109:扩展方法必须在顶级静态类中定义; 扩展是一个嵌套类

我猜测ScriptCS将csx包装在一些导致扩展嵌套的类中,有什么方法可以解决这个问题吗?

.net c# extension-methods scriptcs

16
推荐指数
2
解决办法
1314
查看次数

检测到装配更改.重启主机

我的Azure功能运行正常,突然间我收到了几个"检测到程序集更改.重新启动主机..."消息阻止我的功能完成.

日志

我没有部署新代码,因此不确定是什么触发了Assembly Change事件.我正在运行最新版本的运行时,并且已经恢复到版本1.0.10947,认为可能是基础运行时已更新,但我仍然在日志中显示该行.

立即更新 @Alexey帮助我找出导致检测到装配更改的原因.我想问一下是否有人可以告诉我为什么要检测到装配更改,即使很难,我也没有更改/重新部署我的应用程序.

azure scriptcs azure-functions

13
推荐指数
1
解决办法
638
查看次数

在 VS Code 中运行 C# 代码时遇到问题:获取 scriptcs 错误

这是我第一次使用 Visual Studio Code,我试图在它上面运行一个简单的代码,但它给了我一个错误:

'scriptcs' 不是内部或外部命令,也不是可运行的程序或批处理文件。

我有这个作为代码:

using System;

struct Employee{
   public int Id { get; set; }
   public string FullName { get; set; }
}

public class MyClass{
 public static void Main(){
   Employee obj= new Employee();
   obj.FullName = "Hello World";
   Console.WriteLine(obj.FullName);
  }
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试安装 Scriptcs Runner,但仍然是同样的问题。有人可以提出其他建议吗?

编辑:

在您提出许多建议之后,我尝试了以下操作:

  • 创建一个没有空格的全新文件夹并以相同的方式命名文件。
  • 从 VS Code 扩展管理器重新安装了 scriptcs Runner 扩展。
  • 加倍检查了我的代码。它在在线 c# 编译器上运行,但不在 VS Code 中运行。

问题还是一样。得到上述错误。

c# scriptcs visual-studio-code

11
推荐指数
2
解决办法
2万
查看次数

为什么Console.WriteLine不能在Visual Studio代码中工作?

我在Visual Studio Code上安装了scriptcs和coderunner.当我运行一个简单的程序,包括Console.WriteLine("Test")我没有看到任何输出.该程序似乎成功运行并退出代码0.

有什么建议?

以下是所有人都感兴趣的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Test");
    }
}
Run Code Online (Sandbox Code Playgroud)

c# scriptcs visual-studio-code vscode-code-runner

10
推荐指数
2
解决办法
5503
查看次数

无需打开命令行窗口即可直接启动.csx(scriptcs)C#脚本

Windows中有没有办法直接启动.csx脚本(例如双击文件,或从开始菜单,或通过Launchy等应用程序启动程序),以便脚本在后台运行而无需打开命令行窗口?

例如,假设我有一个简单的"lowercase.csx"脚本,它只需要剪贴板中的任何文本,将其转换为小写,然后将结果放回剪贴板中.我希望能够双击该.csx文件并完全在后台运行而无需打开任何窗口.

目前,运行.csx文件时,ScriptCS.exe和VS2015 Update 1附带的新csi.exe启动程序都将打开控制台窗口,即使该文件未向控制台输出任何内容.

注意:我知道如果从控制台窗口启动脚本,则不会打开新窗口.我想在非命令行上下文中启动脚本并让它打开没有窗口.

注2:在"CS-Script"(ScriptCS替代方案)中,我想要的是使用"csws.exe"启动文件.

c# windows scriptcs csx

8
推荐指数
1
解决办法
2610
查看次数

出现错误:/ bin / sh脚本:找不到命令

我正在使用Visual Studio Code for Mac,运行扩展名CodeRunner。我有一个简单的程序:

using System;
namespace HelloWorldApplication {
class HelloWorld {
   static void Main(string[] args) {
      Console.WriteLine("hellowol");
   }
 }
}
Run Code Online (Sandbox Code Playgroud)

使用右上角的播放按钮运行它时,出现以下错误:

/bin/sh scriptcs: command not found
Run Code Online (Sandbox Code Playgroud)

然后

[Done] exited with code=127 in 0.008 seconds
Run Code Online (Sandbox Code Playgroud)

程序未显示所需的输出。

编辑:非常感谢@VonC。他的方法行得通。 任何人的专业提示:使用安装脚本

brew install scriptcs
Run Code Online (Sandbox Code Playgroud)

c# scriptcs visual-studio-code vscode-code-runner

8
推荐指数
1
解决办法
4872
查看次数

从 c# 应用程序执行 ScriptCS

背景

我正在创建运行一些状态检查的 ac# 应用程序(想想 nagios 样式检查)。

我理想中想要的是这个 c# 应用程序查看特定目录,然后编译/执行其中的任何 scriptcs 脚本,并根据结果采取行动(例如,发送状态检查失败的电子邮件警报)。

我希望脚本返回一个整数或其他东西(例如),该整数将指示状态检查成功或失败的天气。

返回给 C# 应用程序的值。

0 - Success
1 - Warning
2 - Error
Run Code Online (Sandbox Code Playgroud)

当第一次接到这个任务时,我认为这是 MEF 的工作,但是创建这些“状态检查”而不必创建项目或编译任何东西会方便得多,只需在文件夹中放置一个 scriptcs 脚本似乎更有吸引力.

所以我的问题是

  1. 是否有关于将 ac# app 和 scriptcs 一起使用的文档/示例(谷歌并没有给我带来太多好处)?

  2. 这是 scriptcs 的用例还是它从未真正打算像这样使用?

  3. 我是否可以更轻松地使用 roslyn 或一些动态编译/执行创建自定义解决方案?(我对scriptsc的经验很少)

c# scriptcs

7
推荐指数
1
解决办法
2900
查看次数

对于scriptcs,"动态"不受Roslyn支持,只有单声道可用,但单声道在DLL上失败

我尝试从scriptcs加载pythonnet运行时dll并且它不能与roslyn后端一起使用,因为Roslyn不支持动态,但单声道后端阻塞会出现以下错误:

$ scriptcs -modules mono
scriptcs (ctrl-c to exit or :help for help)

> #r "F:\Python\Python27\Lib\site-packages\Python.Runtime.dll"
error CS0009: Metadata file `F:\Python\Python27\Lib\site-packages\Python.Runtime.dll' does not contain valid metadata
Run Code Online (Sandbox Code Playgroud)

题:


如何使用Python.Runtime.DLL获取脚本的Mono后端?我需要在此之前加载任何DLL吗?是否必须使用Mono支持编译Python.Runtime.DLL或.NET是否正常?

c# mono python.net roslyn scriptcs

6
推荐指数
1
解决办法
306
查看次数

使用Sublime Text 3运行Scriptcs时出错

我已将Scriptcs安装到Sublime Text3。
按下CTRL B并构建aspx页面时,出现此错误。

'scriptcs'不被识别为内部或外部命令,可操作程序或批处理文件。

我正在尝试在Sublime上运行aspx页面。
我怎样才能解决这个问题 ?谢谢。

sublimetext sublimetext2 sublimetext3 scriptcs

6
推荐指数
1
解决办法
616
查看次数