我試圖從C#中當前正在執行的程序集中提取嵌入式資源。無法使用Assembly.GetExecutingAssembly()獲取完全限定的程序集名稱。GetName()
我完全合格的組件名稱的形式Alpha.Beta.Gamma.Delta.MyTaskLibrary
(顯然,這不是實際上名稱的;但零件的數量完全對應於我的名字項目的默認命名空間Alpha.Beta.Gamma.Delta.MyTaskLibrary
。
當我執行System.Reflection.Assembly.GetExecutingAssembly().GetName().Name
,而不是顯示我上面的名字,它讓我Gamma.Delta.MyTaskLibrary
。
在另一方面,當我做typeof(ClassName).AssemblyQualifiedName
,我得到ŧ他完全限定了上述名稱以及版本,文化和公鑰標記。
爲什麼這種行爲上的差異?
編輯:我的最終目標是通過使用
Assembly.GetExecutingAssembly().GetManifestResourceStream(assemblyName + "." + fileName)
這正是這個assemblyName
,我試圖找回從這個組件中得到一個嵌入的資源。我試着用"Alpha.Beta.Gamma.Delta.MyTaskLibrary.ResourceFile.ext"
和"Gamma.Delta.MyTaskLibrary.ResourceFile.ext"
這個方法調用,只有前者工作。