在c#应用程序中使用文件

在c#应用程序中使用文件,c#,C#,我想向我的项目中添加一个config.json文件,并从该文件中读取一个类 我在VS中添加了文件,并添加了构建操作=内容和复制到输出目录=始终复制属性 生成时,文件将复制到C:\…\mysolution\myproject\bin\Debug 但是File.ReadAllText(@“config.json”)抛出一个FileNotFoundException。 Path.GetDirectoryName(Assembly.getExecutionGassembly().Location)不返回

我想向我的项目中添加一个
config.json
文件,并从该文件中读取一个类

我在VS中添加了文件,并添加了
构建操作
=
内容
复制到输出目录
=
始终复制
属性

生成时,文件将复制到
C:\…\mysolution\myproject\bin\Debug

但是
File.ReadAllText(@“config.json”)
抛出一个
FileNotFoundException
Path.GetDirectoryName(Assembly.getExecutionGassembly().Location)不返回复制文件的文件夹:

C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\ASP.NET临时文件\\root\\2158bea8\\d46fc01c\\assembly\\dl3\\eca14761\\49a747bf\u be72d001

将从根目录读取“\config.json”,尝试“config.json”

正如Steve所说,您需要使用“config.json”,这将从exe或应用程序所在的位置读取

因此,您需要告诉VS在构建时将此文件复制到输出目录,为此,请执行以下操作:


右键单击VS>Properties>中的文件,将“复制到输出目录”设置为“始终复制”

这会引发相同的异常。(更新的问题)那么,这个类有输出文件吗?您需要确保它位于应用程序的工作文件夹中。或者,如果它的ASP.NET看起来是web根目录,那么它将不会以C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\Temporary ASP.NET Files\\root\\2158bea8\\d46fc01c\\assembly\\dl3\\eca14761\\49a747bf\u be72d001(运行时生成)结束由于它是网站的构建,将文件放入该文件夹中。这涵盖了TEMP ASP.NET文件的内容。链接的答案是该TEMP文件夹不需要任何维护。如何让VS将文件复制到该文件夹中@Steve Drake此解决方案(网络控制台)的类型是什么?@MohammedElSayed我如何才能找到答案?它不会打开控制台。我的启动项目是在IIS Express上运行的nancyfx服务器。nancy可以是自托管的或IIS托管的,IIS上没有所谓的nancyserver,:)如果IIS必须运行才能获得结果,那么它就托管在IIS上。我这样做了,但仍然收到异常。