首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MSIX包中包含应用程序文件依赖项?

如何在MSIX包中包含应用程序文件依赖项?
EN

Stack Overflow用户
提问于 2022-11-14 13:53:28
回答 1查看 60关注 0票数 -1

我有一个自己编写的C# WPF .NETCORE应用程序,现在需要为它生成一个MSIX安装程序。

在C#项目中,我有各种配置文件(*.json、*.csv、*.xml),应用程序在启动时需要这些文件来设置应用程序的状态(api位置等)。

当我从Visual调试器运行该应用程序时,它在调试或发布时运行良好。

当我从VS中的发布选项“发布”时,如果我手动地将文件复制到与发布的单个文件可执行文件相同的级别,它就能工作。

当我在VS中使用(我的wpf应用程序被引用为项目引用)打包应用程序时,我可以安装和执行,但是当它试图加载.json文件时它会崩溃。

xaml引用的徽标映像与配置内容(目录名为/images、/configs等的子目录)所在的文件夹相同,“Resources / image /logo.png”正在加载。在app start和参考"Resources/ configs /api.json“中加载这些信任

我可以看到构建中包含了参考资料目录,但是当我在应用程序包中运行cmd时,应用程序是在system32中启动的,这说明它没有从相对路径加载到可执行位置。

我怀疑我没有以现代的msix方式将WPF应用程序中的资源包括在内,并且需要修复它,而不是将我的资源添加到m6中?或者我只需要用其他方式包含我的资源就行了?

谢谢你的帮忙

编辑:

@MM8

当主窗口启动时。根据在所述窗口中选择的选项,加载不同的配置文件集。用这一行将文件读入字符串;

代码语言:javascript
复制
var text = File.ReadAllText(filePath);

例如:

我有一个函数"LoadPatientInformationLeafletService“,它要求加载配置。在职能方面:

代码语言:javascript
复制
 var config = SerializationService.FromJSONFile<PatientInformationLeafletConfig>("/Resources/PatientInformationLeafletConfiguration.json"); 

FromJSONFile将文件加载到字符串(如上),用newtonsoft反序列化并返回PatientInformationLeafletConfig对象。

参考资料dir与可执行文件处于同一级别,并被复制到同一级别的m6包。

EN

回答 1

Stack Overflow用户

发布于 2022-11-14 15:44:14

确保文件的Build Action已设置为ContentCOpy to Output Directory属性已设置为Copy Always

然后使用绝对路径:

代码语言:javascript
复制
var config = SerializationService.FromJSONFile<PatientInformationLeafletConfig>(
    System.AppContext.BaseDirectory + "/Resources/PatientInformationLeafletConfiguration.json"); 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74432741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档