我正在使用Visual Studio来完成应用程序的第一个完整版本,该应用程序是一个简单的WPF GUI,用于配置本地保存的JSON对象,以及一个控制台应用程序,该应用程序在后台运行,使用该对象中的数据进行监控一个网站。我将每个项目发布到一个测试文件夹(我们将其称为Publish /),该文件夹现在包含每个应用程序清单,以及一个“ Application Files”文件夹,其中包含每个项目的另一个子文件夹。
我让应用程序正常运行-问题是配置文件将几个级别的文件保存到一个文件夹中,分别位于C:\ Users \ username \ AppData \ Local \ Apps \ 2.0 \中,并且控制台应用程序正在尝试读取从一个完全独立的文件夹中。两个项目都使用GetCurrentDirectory()作为文件路径进行读写。有什么办法可以弥补吗?
用于检索JSON对象的代码
try
{
//Confirms file exists
if (File.Exists(Directory.GetCurrentDirectory().ToString() + filePath))
{
//Initialize json variable to a string, then deserialize it into an instance of RCDetails
var json = File.ReadAllText(Directory.GetCurrentDirectory().ToString() + filePath);
RCDetails parsedDetails = JsonConvert.DeserializeObject<RCDetails>(json);
//Return deserialized JSON
return parsedDetails;
}
else return null;
以及用于编写json对象的代码
public void WriteToFile(RCDetails rcd)
{
//Serialize input instance of RCDetails class
string JSONresult = JsonConvert.SerializeObject(rcd, Formatting.Indented);
//Remove old JSON object
if (File.Exists(Directory.GetCurrentDirectory().ToString() + jsonFilePath))
File.Delete(Directory.GetCurrentDirectory().ToString() + jsonFilePath);
//Create new JSON object with updated details
File.WriteAllText(Directory.GetCurrentDirectory().ToString() + jsonFilePath, JSONresult);
}
发布项目的确切步骤:
我最终找到了解决方案(请告诉我这是否是一个不好的计划)。我只是将其放入两个应用程序中。
string s = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\IntendedFolder";
if (!Directory.Exists(s))
Directory.CreateDirectory(s);
Directory.SetCurrentDirectory(s);