Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Wpf发布可以';“找不到内容:”;找不到路径的一部分“;_C#_Wpf_Publish - Fatal编程技术网

C# Wpf发布可以';“找不到内容:”;找不到路径的一部分“;

C# Wpf发布可以';“找不到内容:”;找不到路径的一部分“;,c#,wpf,publish,C#,Wpf,Publish,我创建了一个Wpf应用程序,它由3个项目组成,在一个不是我的主要项目的项目中,我正在访问一些config.xml文件,从中读取数据,也向其中写入数据 在我的应用程序中,我通过以下方式访问此文件: string xmlStr = File.ReadAllText("../Content/StationConfig.xml"); 或: 在调试模式下,它可以在我的应用程序上正常工作,但当我发布时,会出现以下错误: 找不到路径的一部分 它所关注的地方是一个应用程序: C:\Users\petric\A

我创建了一个Wpf应用程序,它由3个项目组成,在一个不是我的主要项目的项目中,我正在访问一些config.xml文件,从中读取数据,也向其中写入数据

在我的应用程序中,我通过以下方式访问此文件:

string xmlStr = File.ReadAllText("../Content/StationConfig.xml");
或:

在调试模式下,它可以在我的应用程序上正常工作,但当我发布时,会出现以下错误:

找不到路径的一部分

它所关注的地方是一个应用程序:

C:\Users\petric\AppData\Local\Apps\2.0\075BBVBO.9MZ\BWMQ2V0B.PE5\Content\StationConfig.xml

此文件需要在安装我的应用程序的每台电脑上都可用。 “我的文件生成”操作已设置为“内容” 它的“复制到输出目录”设置为“始终复制”

我已经阅读了一大堆关于这个问题的问题,但仍然无法找到解决方案,也请阅读以下内容:


有什么建议吗?

它正在查找目录C:\Users\petric\AppData\Local\Apps\2.0\075BBVBO.9MZ\BWMQ2V0B.PE5,因为它是您的当前目录,在发布和检查您是否有权限时尝试保存文档。很可能它不允许你存钱。因此,请检查您是否拥有该位置的全部权限。反过来,尝试将位置更改为相对路径以外的其他路径(暂时)。这可能会为您指明正确的方向。

好的,阅读此问题后: 在解决方案的帮助下

ApplicationDeployment.CurrentDeployment.DataDirectory

而不是看着


AppDomain.CurrentDomain.BaseDirectory


这是正确的建议。

您将该文件添加到项目中了吗???您的意思是什么?我相信我看到了…在visual studio中,您看到了该文件吗???单击该文件并查看其属性窗口。必须有生成操作。可能它没有设置为内容。设置为内容是web project还是windows?我实际上对该位置拥有完全权限,当我使用完整路径时,发现该文件时没有任何问题,但是我需要一个解决方案,它可以在安装该应用程序的任何PC上运行。你在找什么:string xmlStr=File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory+“/Content/StationConfig.xml”);似乎是对的,也许这就是解决方案,你能给我一个链接,指定每个位置代表什么吗?AppDomain.CurrentDomain.BaseDirectory>>指当前应用程序的方向,而当你使用../时,它指的是工作目录。如果你注意到这一点,就会有所不同。对不起,我没有链接,但你可以在谷歌上搜索。。您会发现许多与此相关的链接。这几乎解决了此问题,问题是它正在包含所有.dll文件的文件夹中查找文件,而实际保存该文件的文件夹位于其他位置,而内容文件夹位于安装时创建wpf.exe.config的同一文件夹中。我如何指那个位置?
doc.Save("../Content/StationConfig.xml");