Stream stream = assembly.GetManifestResourceStream("PMTS.ExcelData.xlsx");返回是null
时间: 2024-04-03 19:35:00 浏览: 50
根据您提供的信息,我可以猜测您是在尝试获取程序集中嵌入的 Excel 文件 "PMTS.ExcelData.xlsx" 的资源流,但是返回的结果是 null。这可能是由于文件名或路径不正确,或者资源文件并没有正确嵌入程序集中。
您可以先检查文件名和路径是否正确,如果不确定可以使用 Visual Studio 中的资源管理器查看程序集中的资源文件列表,确认文件名是否正确。如果文件名和路径都是正确的,那么您需要确保资源文件已被正确嵌入程序集中。您可以检查项目属性中的“生成操作”是否设置为“嵌入的资源”。
如果您已经确认文件名、路径和嵌入设置均正确,但仍然返回 null,则可能需要考虑文件本身是否存在问题,您可以尝试手动打开文件,确认其是否可以被正确打开和读取。
相关问题
Stream stream = assembly.GetManifestResourceStream要填写什么内容
在调用 `GetManifestResourceStream` 方法时,您需要传入一个字符串参数,该参数指定了要获取的嵌入式资源的名称。这个名称通常由两部分组成:程序集的默认命名空间和资源的名称(或嵌入路径)。
假设您的程序集名为 `MyAssembly`,默认命名空间为 `MyNamespace`,并且您想要获取名为 `PMTS.ExcelData.xlsx` 的 Excel 文件资源,那么可以使用以下代码:
```
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("MyNamespace.PMTS.ExcelData.xlsx");
```
在这里,我们首先使用 `Assembly.GetExecutingAssembly()` 方法获取当前正在执行的程序集,然后使用 `GetManifestResourceStream` 方法传入资源的完整名称字符串,即 `MyNamespace.PMTS.ExcelData.xlsx`。请注意,在这里不需要指定文件的物理路径,只需要使用它在程序集中的名称即可。
如果您对程序集的默认命名空间不确定,可以在 Visual Studio 中打开资源文件的属性窗口,在其中查找 “命名空间” 属性,该属性的值就是您需要在字符串中使用的默认命名空间。
使用Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream,程序叫PMTS,资源文件叫ExcelDatas.resx,下面有个叫ExcelData.xlsx,为什么返回null
如果您的程序集名为 `PMTS`,资源文件名为 `ExcelDatas.resx`,并且其中包含名为 `ExcelData.xlsx` 的 Excel 文件资源,那么获取资源流的代码应该如下所示:
```
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("PMTS.ExcelDatas.ExcelData.xlsx");
```
在这里,资源的完整名称字符串由三部分组成:程序集名 `PMTS`、资源文件名 `ExcelDatas.resx` 和资源的名称 `ExcelData.xlsx`。请注意,资源文件名和资源名称之间使用点号 `.` 进行分隔。
如果返回的结果是 null,那么有可能是资源名称不正确或者资源文件没有正确嵌入到程序集中。您可以使用 Visual Studio 中的资源管理器查看程序集中的嵌入式资源文件列表,确认资源名称是否正确,并检查项目属性中的“生成操作”是否设置为“嵌入的资源”。同时,您也可以尝试使用资源管理器重新导入资源文件,并重新构建程序集。