MSBuild 嵌入程序集资源
嵌入资源程序集
如何在程序集中嵌入资源呢?以及要如何使用呢?
项目文件配置
使用 MSBuild 的 EmbeddedResource 元素将文件嵌入到程序集中。
<ItemGroup>
<EmbeddedResource Include="Files\*.txt"></EmbeddedResource>
<EmbeddedResource Include="X.resx" LogicalName="SomeName.resources" />
<EmbeddedResource Include="X.fr-FR.resx" LogicalName="SomeName.resources" />
</ItemGroup>
从程序集中读取资源
在 .net 中,使用 System.Resources.ResourceManager 读取程序集中嵌入的文件。
private static void Main()
{
var helloStream = typeof(Program).Assembly.GetManifestResourceStream("demo.Files.Message.txt");
StreamReader reader = new StreamReader(helloStream);
var str = reader.ReadToEnd();
Console.WriteLine(str);
}
读取的资源名的名称命名规则:
- 如果未指定
LogicalName,那么资源名为{AssemblyFullName}.{DirectoryName}.{DirectoryName}。 - 如果指定了
LogicalName,使用逻辑名称读取即可。
参考文档:https://learn.microsoft.com/zh-cn/dotnet/core/resources/manifest-file-names
浙公网安备 33010602011771号