5

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

(桌面 .NET Framework 3.5、Visual Studio 2008 SP1、C#、Windows 7 Enterprise x64。)

4

2 回答 2

9

其实是有办法的,但是需要手动编辑.csproj。

在 .csproj 文件中,找到 EmbeddedResource 元素,如下所示:

<EmbeddedResource Include="Resources\MyImage.png" />

添加一个LogicalName 子元素,如下所示。

<EmbeddedResource Include="Resources\MyImage.png">
  <LogicalName>MyImage.png</LogicalName>
</EmbeddedResource>

进行此更改后,可以将资源作为“MyImage.png”获取 - 默认命名空间和文件夹名称被省略。

看起来此功能自 2005 年以来就已可用。

于 2011-10-02T17:38:50.510 回答
0

不是程序集名称 - 命名空间;)默认命名空间,IIRC。前缀是默认命名空间;)

于 2010-03-16T12:12:07.773 回答