我刚刚开始研究 .Net Core,但没有看到经典资源和任何看起来像资源的东西。
Connection.Execure(Properties.Resources.MySuperScript);
我发现 .Net Core 库中没有这样的功能,至少我没有看到。
答案
UPDATE:
.NET Core 1.1 及更高版本已放弃project.json
并返回到.csproj
文件。
<ItemGroup>
<Content Remove="_fonts/OpenSans.ttf" />
<Content Remove="_fonts/OpenSans-Bold.ttf" />
<Content Remove="_fonts/OpenSans-Italic.ttf" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="_fonts/OpenSans.ttf" />
<EmbeddedResource Include="_fonts/OpenSans-Bold.ttf" />
<EmbeddedResource Include="_fonts/OpenSans-Italic.ttf" />
</ItemGroup>
可能还有类似的*.tff
形式;
步骤 1 和 3 不变。
要在 .NET Core 1.0 项目中使用嵌入式资源,请执行以下操作:
像往常一样添加您的嵌入文件。
示例:名为"_fonts"的目录中的一些 FONT 文件
修改"project.json"以包含相关资源。
就我而言:
"buildOptions": { "embed": { "include": [ "_fonts/*.ttf" ] } },
访问代码中的嵌入资源。
var assembly = typeof(MyLibrary.MyClass).GetTypeInfo().Assembly; Stream resource = assembly.GetManifestResourceStream("MyLibrary._fonts.OpenSans.ttf");
关键是要使用正确的名称
GetManifestResourceStream
称呼。[assembly name].[directory].[file name]
。