在没有汇编前缀的.NET程序集中嵌入资源?

时间:2010-03-16 12:09:51

标签: .net visual-studio resources embedded-resource visual-studio-2008-sp1

使用Visual Studio将资源嵌入到.NET程序集中时,它会以程序集名称为前缀。但是,程序集可以具有不是以程序集名称为前缀的嵌入资源。我能看到这样做的唯一方法是使用ILDASM反汇编程序集,然后重新组装它,添加新资源 - 这有效,但是......我真的需要完成那句话吗?

(Desktop .NET Framework 3.5,Visual Studio 2008 SP1,C#,Windows 7 Enterprise x64。)

2 个答案:

答案 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。前缀是默认命名空间;)