C# 在运行时从外部更改csv文件,并且不会';我看不出有什么效果

C# 在运行时从外部更改csv文件,并且不会';我看不出有什么效果,c#,csv,file,streamreader,using,C#,Csv,File,Streamreader,Using,我有一个从csv文件读取的方法。 由于正在使用,流读取器正在关闭 我在外部更改csv文件(只需在中打开csv文件) Visual studio,更改一些文本,然后保存) 我在使用结束后更改了文件。 这意味着现在应该处理的流 然后再次调用相同的方法,但出于某种原因, 我只得到旧数据。这些变化没有效果 为什么我不能得到新的数据 代码如下: public async override Task<List<StockData>> GetListOfStockDataFro

我有一个从csv文件读取的方法。 由于正在使用,流读取器正在关闭

我在外部更改csv文件(只需在中打开csv文件) Visual studio,更改一些文本,然后保存)

我在使用结束后更改了文件。 这意味着现在应该处理的流

然后再次调用相同的方法,但出于某种原因, 我只得到旧数据。这些变化没有效果

为什么我不能得到新的数据

代码如下:

    public async override Task<List<StockData>> GetListOfStockDataFromSource( )
    {
        using (StreamReader streamReader = new StreamReader(_csvFileName))
        using (CsvReader csvReader = new CsvReader(streamReader,CultureInfo.CurrentCulture))
        {
            csvReader.Configuration.RegisterClassMap<CsvSourceMap>();
            List<StockData> stocksAsList = csvReader.GetRecords<StockData>().ToList();

            return stocksAsList;
        }
    }
}
public异步重写任务GetListOfStockDataFromSource()
{
使用(StreamReader StreamReader=newstreamreader(_csvFileName))
使用(CsvReader CsvReader=新CsvReader(streamReader,CultureInfo.CurrentCulture))
{
csvReader.Configuration.RegisterClassMap();
List stocksAsList=csvReader.GetRecords().ToList();
返回股票列表;
}
}
}

Visual Studio中的
复制到输出目录
选项仅在生成/重新生成项目时复制文件

如果要更改文件而不重建,则需要更改应用程序输出目录中的文件(通常为
bin/{runtimeversion}
)。但请注意,这些更改将在下次重建时被覆盖


另一个选项是使用可以作为可选启动参数传递的文件路径。因此,在启动设置中,您可以在调试时指向解决方案目录中的文件,而部署的应用程序默认使用应用程序目录中的文件。

您是否尝试关闭流?这不是“使用”所做的吗?您可以强制CsvReader和StreamReader使流保持打开状态,但是,我没有指定这一点,并且从代码编写的方式来看,这将是一个bug,或者是其他进程打开了您不知道的文件。。我的猜测是,我没有发现你的代码有任何问题-你确定你正在编辑正确的文件吗?一个常见的错误是在项目目录中编辑文件,而应用程序从bin目录中读取文件(如果您使用的是相对路径)。该文件将在项目的每个新版本中复制。如果您在不重建项目的情况下更改它,它将不会被复制。帮助很大。谢谢