使用Visual Studio将资源嵌入到.NET程序集中时,它会以程序集名称为前缀。但是,程序集可以具有不是以程序集名称为前缀的嵌入资源。我能看到这样做的唯一方法是使用ILDASM反汇编程序集,然后重新组装它,添加新资源 - 这有效,但是......我真的需要完成那句话吗?
(Desktop .NET Framework 3.5,Visual Studio 2008 SP1,C#,Windows 7 Enterprise x64。)
答案 0 :(得分:8)
实际上,有一种方法,但您需要手动编辑.csproj。
在.csproj文件中,找到EmbeddedResource元素,它将如下所示:
<EmbeddedResource Include="Resources\MyImage.png" />
添加LogicalName子元素,如下所示。
<EmbeddedResource Include="Resources\MyImage.png">
<LogicalName>MyImage.png</LogicalName>
</EmbeddedResource>
进行此更改后,可以将资源提取为“MyImage.png” - 省略默认命名空间和文件夹名称。
看起来这个功能已经可用since 2005。
答案 1 :(得分:0)
不是程序集名称 - 名称空间;)默认名称空间,IIRC。前缀是默认命名空间;)