c# - 在 Linux vps (CentOS 5) 上运行 C# 或 VB 或 asp 代码的小片段

标签 c# php linux mono

我需要在我的 Linux vps 上运行一小段代码(如下),以根据特定的 ID 号生成字符串。我对 PHP 的经验不是很丰富,但我尝试过 PHP 中的编码算法,但我总是得到与 C# 代码不同的结果 - 很可能是由于 Randomize 或 Rnd 函数的操作方式所致。

单声道对于这么小的东西来说是有效的解决方案吗?实现过程中涉及哪些内容。任何信息都是有用的,我可以做更多的研究,但我只需要验证我没有浪费时间尝试在 Linux 上运行它。有人有使用 Mono 编写小脚本的经验吗?

编辑我对任何具有使用这么小的东西实现单声道经验的人都非常感兴趣。

C# 代码如下。在运行之前,我将调用数据库来检索存储在 unqiueid 字符串变量中的数字。运行此代码片段后,我将获得将解锁代码变量写入数据库的代码。

var rnum = Microsoft.VisualBasic.VBMath.Rnd(-1);
var seed = 2 * uniqueid.AsInt();
Microsoft.VisualBasic.VBMath.Randomize(seed);
for (int i = 1; i <= 6; i++)
{
   unlockcode = unlockcode + Convert.ToChar((int)((26) * Microsoft.VisualBasic.VBMath.Rnd() + 1 + 64));
}

最佳答案

我对你的问题有点困惑。
应用程序的大小有限并不是“不”使用 Mono 的理由。

但是,当您的目标是 Linux 时,您应该避免 Windows 特有的东西。
例如,您无法在 Linux 上运行 WPF 应用程序。

理论上,您可以编译代码并使用 Mono 在 Linux 上运行它,
但您正在使用 Microsoft.VisualBasic 中的类。我没有检查它是否在 Mono 上可用,但即使是,也没有必要使用它:

var unlockCode = 0;
var random = new Random(Convert.ToInt32(uniqueId));
var randomNumber = random.Next();
for (int i = 1; i < 6; i++)
{
    unlockCode += Convert.ToChar((int)((26) * random.Next() + 1 + 64));
}

使用 System.Random 而不是 Microsoft.VisualBasic.VBMath.Randomize, 这样就少了一种需要担心的依赖性。

我还应该注意,当您使用 Visual Studio 在 Windows 上编译它时,
您无需重新编译它即可在 Linux 上使用它,只需复制编译后的程序集 (exe) 将其部署在 Linux 上并使用 Mono 执行即可。

反之亦然,如果您使用 mono csharp 编译器在 Linux 上编译应用程序,您只需将其复制到 Windows 计算机并使用 .NET(或 Mono)执行即可

如果您在 Windows 上编译了一个应用程序,并且想知道它是否使用了 Linux/Mono 上不可用的任何内容,请使用 MoMa 工具:http://www.mono-project.com/MoMA

它会告诉您在 Linux/Mono 上运行应用程序时会遇到哪些问题。

更新:关于您的评论

It seems a bit silly to run Mono just to run 7 lines legacy c# code

这没有什么愚蠢的...当然它占用了一些磁盘空间,但事实并非如此 在后台连续运行的进程或任何东西。单声道运行时 当您执行应用程序时使用,并在没有其他 Mono/.NET 应用程序时停止 积极的。对于 Python 应用程序甚至命令行 PHP 应用程序来说也是如此。在你的系统上安装 Mono 没有什么坏处,我不会担心它。

关于c# - 在 Linux vps (CentOS 5) 上运行 C# 或 VB 或 asp 代码的小片段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14989573/

相关文章:

c# - 等待来自永无止境的任务的事件异步

c# - 不允许控制台打印任何键并仅将箭头作为输入

php - 如何使用 php 脚本可读的 wininet 传输文件?

linux - 404 Not Found - 无法让 apache web 服务器查看 UserDir

html - 使用 sed 从文件中删除空的 HTML 标签

c# - 使用反射在方法调用上获取正确的返回值

c# - Unity,将立方体贴图保存为一个圆形图像

php - php MySQL的变量错误

php - 如何在'sudo apt-get install lampp-server ^之后获得phpmyadmin

linux - 从 x86 汇编中的寄存器打印 ASCII 字符范围