.NET获取嵌入式资源文件

时间:2017-06-15 22:01:28

标签: c# visual-studio resources embedded-resource

我有一个嵌入式资源文件:

enter image description here

我需要将其作为Stream打开。

我尝试过的(无效,stream为null):

var assembly = Assembly.GetExecutingAssembly();
using (var stream = assembly.GetManifestResourceStream("client_secret.json"))

有任何想法或建议吗?

修改:我正在做的事情:

using (var stream = assembly.GetManifestResourceStream("client_secret.json"))
{
    credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(
                GoogleClientSecrets.Load(stream).Secrets,
                // This OAuth 2.0 access scope allows an application to upload files to the
                // authenticated user's YouTube channel, but doesn't allow other types of access.
                  new[] { YouTubeService.Scope.YoutubeUpload },
                  "user",
                  CancellationToken.None
                );
}

2 个答案:

答案 0 :(得分:4)

我解决了这个问题,我必须提供资源的完整命名空间:

using (var stream = assembly.GetManifestResourceStream("Project.Resources.client_secret.json"))

答案 1 :(得分:3)

在解决方案资源管理器中右键单击您的项目 - >添加 - >新商品 - >资源文件

然后双击创建的文件(例如Resource1.resx),然后将client_secret.json添加到其中。现在,您可以使用强制代码访问client_secret.json内容。请注意,如果您将json文件放入资源,那么当获取client_secret时,您将得到一个byte []且必须convert that to string

 var foo= Encoding.UTF8.GetString(Resource1.client_secret);

但是如果只添加.txt文件,您可以使用以下命令访问该文件:

var foo= Resource1.txtfile;