2013-04-24 47 views
2

我试图从资源读取一个二进制文件使用阅读使用GetManifestResourceStream

Stream input = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName); 

,其中资源名称是一个字符串,包含资源的文件名的资源。我收到一个空对象。 我试过完全合格的路径(例如“myAssemblyName.Properties.Resources。”+ resourceName),但那也不起作用。

我错过了什么吗?

+0

退房资源流[如何嵌入和访问资源(http://support.microsoft.com/kb/319292)看看它是否有助于解决您的问题。如果没有 - 您可以在问题中添加更多详细信息。 – 2013-04-24 16:04:32

+0

确保为资源名称使用“NameOfNameSpace.Resources.NameOfFileInTheResource”。另外,你可以使用'Properties.Resources.yourresource'吗? – 2013-04-24 16:16:05

+0

猜测名称的正确性可能很困难,这是Visual Studio拥有资源设计器的一个重要原因。在程序集上运行ildasm.exe,双击清单并注意'.mresource'语句。 – 2013-04-24 19:46:17

回答

0

确保您的文件包含在项目中。 确保文件的“Build Action”设置为“Embedded Resource”。 检查名称是与

Assembly.GetExecutingAssembly().GetManifestResourceNames() 

负载与

Assembly.GetExecutingAssembly().GetManifestResourceStream()