确定.NET嵌入式资源的名称?

巴尔塔萨克

假设您在名为AppC#应用程序中有一个名为的目录Res,并且在该目录中具有icon.png,您大概会将其标记为EmbeddedResource并在运行时对其进行访问,以使用以下代码向您的应用程序提供图标: :

        var assembly = System.Reflection.Assembly.GetEntryAssembly();
        var resourceAppIcon = assembly.
            GetManifestResourceStream( "App.Res.icon.png" );

        // Prepare icons
        if ( resourceAppIcon != null ) {
            this.appIconBmp = new Bitmap( resourceAppIcon );
            this.Icon = Icon.FromHandle( this.appIconBmp.GetHicon());
        }

... 等等。

这段代码以前可以正常工作,但是自从我改用JetBrains Rider之后突然停止了工作。尽管资源仍然嵌入,但它们的名称已从更改namespace.directory.resource_namenamespace.resource_name为了访问该图标,我必须现在写:

     var resourceAppIcon = assembly.
            GetManifestResourceStream( "App.icon.png" );

这是预期的吗?只是和Rider有关吗?也许与dotnetcore随附的新时代有关?我一直在努力寻找有关此方面的文档,但是没有任何运气。

编辑:我已经尝试过使用CLI使用dotnetcore,然后资源名称符合预期。看来这是Mono的问题?

大卫·洛佩兹(David Lopez)

我只是想重播您的问题,但是在dotnetcore(Visual Sutdio和JetBrains Rider)中,我都可以使用“ App.Res.icon.png”代码以相同的方式访问嵌入式图像资源,但不能使用“ App.icon”访问.png”。

另外,我认为您可以尝试以下方法:

var assembly = System.Reflection.Assembly.GetExecutingAssembly(); // Instead of GetEntryAssembly()
var resourceAppIcon = assembly.GetManifestResourceStream("App.Res.icon.png");

希望对您有所帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章