无法从VB6写入外部DLL调用中的文件

时间:2019-05-28 18:49:33

标签: c# .net dll com tlb

我正在修复一些旧的VB6代码,这些代码需要从VB6程序调用外部COM .tlb .NET应用程序。 .NET应用程序会无限循环地将数据记录到csv,并使用“跟踪”来提供调试和错误消息。如果我自己测试外部.NET记录器,它将创建数据日志文件并完美运行,而不会出现任何类型的错误。但是,当从VB6客户端调用它时,它不会生成我的任何日志文件,但仍会永远循环运行。

我想知道是什么导致程序无法创建文件并开始记录。

我在项目设置中启用了TRACE常量

我总是以管理员身份运行

我已经在每个文件夹中搜索了日志文件。

已注册DLL和TLB文件

我尝试将文件保存到相对路径,无路径或Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); 但是没有人创建文件

public string header = "Time,Channel1,Channel2,Channel3,Channel4,Channel5,Channel6,Channel7,Channel8,Channel9,Channel10,Channel11,Channel12,Channel13,Channel14,Channel15,Channel16\r\n";

Trace.Listeners.Add(new TextWriterTraceListener("MemoTracelog " + DateTime.Now.ToString("yyyyMMddHHmmss") + ".txt"));
Trace.AutoFlush = true;
try
{
    fs = new FileStream("MemoLog " + DateTime.Now.ToString("yyyyMMddHHmmss") + ".csv" , FileMode.Create, FileAccess.Write);
    fs.Write(Encoding.ASCII.GetBytes(header), 0, header.Length);
}
catch (System.IO.IOException)
{
    WriteTraceLine("Couldn't open file for write. Use admin privileges and ensure file is not in use.");
}
public void WriteTraceLine(string whatToLog)
{
    Trace.WriteLine(DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss") + " " + whatToLog);
    Console.WriteLine(DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss") + " " + whatToLog);
}   

没有任何错误。可以运行,但不创建任何文件。

0 个答案:

没有答案
相关问题