我刚刚开始研究 .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 项目中使用嵌入式资源,请执行以下操作:

  1. 像往常一样添加您的嵌入文件。

    示例:名为"_fonts"的目录中的一些 FONT 文件

    enter image description here

  2. 修改"project.json"以包含相关资源。

    就我而言:

     "buildOptions": {
        "embed": {
          "include": [
            "_fonts/*.ttf"    
          ]
        } 
      },
    
  3. 访问代码中的嵌入资源。

    var assembly = typeof(MyLibrary.MyClass).GetTypeInfo().Assembly;
    Stream resource = assembly.GetManifestResourceStream("MyLibrary._fonts.OpenSans.ttf");
    

    关键是要使用正确的名称GetManifestResourceStream称呼。[assembly name].[directory].[file name]

来自: stackoverflow.com