无法访问 ASP.NET 核心 C# 项目中的嵌入式资源?
Cannot access embedded resource in ASP.NET Core C# project?
我试图在我的 ASP.NET 核心项目中将流设置为等于嵌入资源的文本内容。但是,在调试时,流一直被设置为空,我认为这是因为它无法找到这个嵌入资源。
我已通过转到“属性”>“构建操作”>“嵌入式资源”将文件设置为嵌入式资源。然后我还编辑了项目 .csproj
文件以包含一个项目组,该项目组引用要包含的文件:
<ItemGroup>
<EmbeddedResource Include="Assets/loyalty-template.html">
<LogicalName>Assets/Loyalty-template.html</LogicalName>
</EmbeddedResource>
</ItemGroup>
我在哪里设置流:
string body;
using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("Assets/loyalty-template.html"))
{
TextReader tr = new StreamReader(stream);
body = tr.ReadToEnd();
}
我是否在 GetManifestResourceStream
中正确引用了嵌入文件?以下是 loyalty-template.html
所在项目的文件结构:
使用以下路径:[程序集名称].[目录].[文件名].
或
仅将 GetManifestResourceNames 与文件名和扩展名一起使用:
string resourceName = assembly.GetManifestResourceNames()
.Single(str => str.EndsWith("loyalty-template.html"));
我试图在我的 ASP.NET 核心项目中将流设置为等于嵌入资源的文本内容。但是,在调试时,流一直被设置为空,我认为这是因为它无法找到这个嵌入资源。
我已通过转到“属性”>“构建操作”>“嵌入式资源”将文件设置为嵌入式资源。然后我还编辑了项目 .csproj
文件以包含一个项目组,该项目组引用要包含的文件:
<ItemGroup>
<EmbeddedResource Include="Assets/loyalty-template.html">
<LogicalName>Assets/Loyalty-template.html</LogicalName>
</EmbeddedResource>
</ItemGroup>
我在哪里设置流:
string body;
using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("Assets/loyalty-template.html"))
{
TextReader tr = new StreamReader(stream);
body = tr.ReadToEnd();
}
我是否在 GetManifestResourceStream
中正确引用了嵌入文件?以下是 loyalty-template.html
所在项目的文件结构:
使用以下路径:[程序集名称].[目录].[文件名].
或
仅将 GetManifestResourceNames 与文件名和扩展名一起使用:
string resourceName = assembly.GetManifestResourceNames()
.Single(str => str.EndsWith("loyalty-template.html"));