C# 代码在进程启动前不编译验证文件
C# Code doesn’t compile verifying files before process start
我是 C# 的新手,试图得到我希望的可能是一个简单的小脚本来检查工作目录是否存在 test.mdb 然后如果它存在检查 MyVbs 的 sha1 与 MySha 是否存在他们是一样的 process.Start。下面是我用记事本编写并使用框架 3.5 csc.exe
编译的 cs 文件
我已经重新发布了我的问题,我尝试了所有各种和许多 SO sha1 代码 none,我可以使用我的代码来处理这些代码,所有这些代码似乎都非常不同并且特定于某些需求。我选择了我认为最适合我的情况的那个,并将其合并到我的代码中,但我无法让它工作?因此,如果有人可以帮助解决我的代码问题,使其能够正常工作,而不是仅仅禁止我的问题,那将对我学习 C# 非常有帮助。谢谢。
using System;
using System.IO;
using System.Windows.Forms;
using System.Diagnostics;
using System.Reflection;
using System.Security.Cryptography;
[assembly:AssemblyVersionAttribute("1.0.0.0")]
[assembly:AssemblyTitleAttribute("MyTitle")]
[assembly:AssemblyDescriptionAttribute("MyDescription")]
[assembly:AssemblyCompanyAttribute("MyCompany")]
[assembly:AssemblyFileVersionAttribute("1.0.0.0")]
[assembly:AssemblyProductAttribute("MyProduct")]
class MyClass {
static void Main()
{
var filePath = @"test.mdb";
var MyVbs = @"MyScript.vbs";
var MySha = "d0be2dc421be4fcd0172e5afceea3970e2f3d940";
if (File.Exists(filePath))
{
using(var cryptoProvider = new SHA1CryptoServiceProvider())
{
string hash = BitConverter
.ToString(cryptoProvider.ComputeHash(MyVbs));
if MyVbs = MySha // This needs changing to make sha1 check but how?
{
Process process = new Process();
process.StartInfo.FileName = MyVbs;
process.Start();
}
else
{
MessageBox.Show("The sha1 doesn't match. The file has been altered.","My Title");
}
}
}
else
{
MessageBox.Show("File doesn't exist","My Title");
}
}
}
正如其他人所建议的,您应该真正使用 Visual Studio(免费版社区)。
有一些明显的语法错误,例如:
if MyVbs = MySha
应该是:
if (MyVbs == MySha)
语法正确。
真正应该是:
if (hash == MySha)
根据我的猜测,这部分代码应该做什么。
您的代码中可能还有其他一些错误。
我是 C# 的新手,试图得到我希望的可能是一个简单的小脚本来检查工作目录是否存在 test.mdb 然后如果它存在检查 MyVbs 的 sha1 与 MySha 是否存在他们是一样的 process.Start。下面是我用记事本编写并使用框架 3.5 csc.exe
编译的 cs 文件我已经重新发布了我的问题,我尝试了所有各种和许多 SO sha1 代码 none,我可以使用我的代码来处理这些代码,所有这些代码似乎都非常不同并且特定于某些需求。我选择了我认为最适合我的情况的那个,并将其合并到我的代码中,但我无法让它工作?因此,如果有人可以帮助解决我的代码问题,使其能够正常工作,而不是仅仅禁止我的问题,那将对我学习 C# 非常有帮助。谢谢。
using System;
using System.IO;
using System.Windows.Forms;
using System.Diagnostics;
using System.Reflection;
using System.Security.Cryptography;
[assembly:AssemblyVersionAttribute("1.0.0.0")]
[assembly:AssemblyTitleAttribute("MyTitle")]
[assembly:AssemblyDescriptionAttribute("MyDescription")]
[assembly:AssemblyCompanyAttribute("MyCompany")]
[assembly:AssemblyFileVersionAttribute("1.0.0.0")]
[assembly:AssemblyProductAttribute("MyProduct")]
class MyClass {
static void Main()
{
var filePath = @"test.mdb";
var MyVbs = @"MyScript.vbs";
var MySha = "d0be2dc421be4fcd0172e5afceea3970e2f3d940";
if (File.Exists(filePath))
{
using(var cryptoProvider = new SHA1CryptoServiceProvider())
{
string hash = BitConverter
.ToString(cryptoProvider.ComputeHash(MyVbs));
if MyVbs = MySha // This needs changing to make sha1 check but how?
{
Process process = new Process();
process.StartInfo.FileName = MyVbs;
process.Start();
}
else
{
MessageBox.Show("The sha1 doesn't match. The file has been altered.","My Title");
}
}
}
else
{
MessageBox.Show("File doesn't exist","My Title");
}
}
}
正如其他人所建议的,您应该真正使用 Visual Studio(免费版社区)。 有一些明显的语法错误,例如:
if MyVbs = MySha
应该是:
if (MyVbs == MySha)
语法正确。
真正应该是:
if (hash == MySha)
根据我的猜测,这部分代码应该做什么。
您的代码中可能还有其他一些错误。