簡體   English   中英

C#GetManifestResourceStream返回null

[英]C# GetManifestResourceStream returns null

我正在使用C#WinForms應用程序。 我需要嵌入一個.dll,我嘗試將此文件從Resource“導出”到HDD。

我使用默認表單資源...

System.IO.Stream s = Assembly.GetExecutingAssembly().GetManifestResourceStream("FormNamespace.Form1.Newtonsoft_Json");

文件名是Newtonsoft.Json.dll,我也嘗試過:

System.IO.Stream s = Assembly.GetExecutingAssembly().GetManifestResourceStream("FormNamespace.Form1.Newtonsoft.Json.dll");

兩者都不起作用。 s始終為null。 我認為我使用錯誤的方式來訪問資源,但我不知道:(

如果有人可以幫助我會很好:)

如果您已將構建操作正確設置為“嵌入式資源”,則問題很可能是資源的名稱。

它應該是命名空間+文件名; 你試過FormNamespace.Newtonsoft_Json.dll嗎?

否則,您可以嘗試執行GetManifestResourceNames方法並查看它返回的內容。

您應該提供資源的所有路徑。 示例[DLLNAME或NameSpace]。[ResourceName]如果資源位於Res文件夾,則[DLLNAME或NameSpace]。[Res.Resource.txt]

如果您正在使用Assembly.GetExecutingAssembly(),那么您將獲得更好的資源路徑,執行以下操作:

var assembly = Assembly.GetExecutingAssembly();
var s = assembly.GetManifestResourceStream($"{assembly.GetName().Name}.Json.dll");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM