标签: embedded-resource

移植时出现Mono resources.resx问题('</ data>'上resx xml文件中的奇怪错误)

所以我有一个C#应用程序.它有一些链接到它的资产,并且在编译期间被嵌入.应用程序在Windows上编译和运行完美.当用mono测试兼容性时,告诉所有内容都是正确的.如果我尝试编译给出一个错误的n xml文件

/home/rupert/Desktop/CloudObserverLite(4)/CloudObserverLite/Properties/Resources.resx: Error: Error: Invalid ResX input.
Position: Line 123, Column 5.
Inner exception: value
 (CloudObserverLite)
Run Code Online (Sandbox Code Playgroud)

如果我们看看resx xml

  ...<resheader name="writer">

    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>

  </resheader>

  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />

  <data name="framework_4_5_0_17689_swz" type="System.Resources.ResXFileRef, System.Windows.Forms">

    <value>../assets/framework_4.5.0.17689.swz;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>

  </data>

  <data name="index_html" type="System.Resources.ResXFileRef, System.Windows.Forms">

    <value>../assets/index.html;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;windows-1251</value>

  </data>...
Run Code Online (Sandbox Code Playgroud)

第123行将是第一个 </data>标记.

这是所有resx文件,如果它可以提供更多信息

 <?xml version="1.0" encoding="utf-8"?>

<root>

  <!-- 

    Microsoft ResX Schema 



    Version 2.0



    The primary goals of this format is to allow a simple XML …
Run Code Online (Sandbox Code Playgroud)

.net c# mono resources embedded-resource

17
推荐指数
1
解决办法
4491
查看次数

通过.RC文件而不是.RES文件在项目中包含资源文件

我记得在几年前读过一篇文章或帖子,建议在项目中包含一个资源文件,方法是引用.rc文件而不是已编译的.res文件,以便资源构建为项目构建过程的一部分.

我有一个glyphs.rc文件,我目前使用命令brcc32 glyphs.rc编译.在我的项目文件中,我有声明{$ R Glyphs.res}.

我想通过改变它来简化它

{$R Glyphs.rc} 
Run Code Online (Sandbox Code Playgroud)

但我不确定语法.当我尝试使用时,{$R Glyphs.rc}我得到一个错误`

[DCC Error] E2161 Error: RLINK32: Unsupported 16bit resource in file "Glyphs.rc". 
Run Code Online (Sandbox Code Playgroud)

这种方法可以用Delphi 2007吗?

delphi build-process embedded-resource

16
推荐指数
2
解决办法
2万
查看次数

有条件地在Visual Studio中嵌入资源(C#)

有没有办法有条件地将资源嵌入到.NET项目中?即如果我已经定义了INCLUDETHIS,那么我想在dll中嵌入一个特定的大文件,否则我不希望它嵌入.我知道我可以做两个项目,但我希望在一个项目中完成所有这些.使用该文件的代码很容易用#if INCLUDETHIS ... #endif来调节,但我甚至不想在dll中使用该文件,因为它包含敏感信息并且仅在内部使用.

.net c# embedded-resource

16
推荐指数
1
解决办法
2884
查看次数

WPF - 添加自定义字体

我正在尝试在我的应用程序中添加自定义字体作为资源.我在应用程序中有一个"CustomFont"目录,其中的所有字体都设置为"Resource"

<Window.Resources>
    <Style x:Key="Gotham-XLight">
        <Setter Property="TextElement.FontFamily" 
                Value="/CustomFonts;Component/#Gotham-XLight" />
    </Style>
</Window.Resources>
Run Code Online (Sandbox Code Playgroud)

然后在我的TextBlock上我有这个:(在网格内)

<TextBlock x:Name="TimeTextBlock" Style="{DynamicResource Gotham-XLight}" 
           TextAlignment="Center" FontSize="25" FontWeight="Bold" 
           Foreground="White" Text="TextBlockTimer" 
           Margin="105,242.974,0,226.975" HorizontalAlignment="Left" 
           Width="221.919" />
Run Code Online (Sandbox Code Playgroud)

但是我没有像人们说的那样看到我的字体.难道我做错了什么?

wpf fonts embedded-resource

15
推荐指数
2
解决办法
2万
查看次数

在delphi中嵌入字体

我正在开发一款需要特定条形码真实字体的应用程序,这种字体不太可能出现在用户的PC上.

我可以以某种方式在应用程序中嵌入字体,还是我需要使用安装程序来安装字体?

delphi fonts embedded-resource

15
推荐指数
2
解决办法
7503
查看次数

在资源文件中使用'switch'和字符串

我的资源(.resx)文件中有一堆字符串.我试图直接使用它们作为switch语句的一部分(请参阅下面的示例代码).

class Test
{
    static void main(string[] args)
    {
        string case = args[1];
        switch(case)
        {
            case StringResources.CFG_PARAM1: // Do Something1 
                break;
            case StringResources.CFG_PARAM2: // Do Something2
                break;
            case StringResources.CFG_PARAM3: // Do Something3
                break;              
            default:
                break;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我看了一些解决方案,其中大多数似乎都暗示我需要将它们声明为const string我个人不喜欢的.我喜欢这个问题的最高投票解决方案:在switch语句中使用字符串集合.但后来我需要确保我enumstrings资源文件绑在一起.我想知道一个巧妙的方法.

编辑:在研究如何使用时 也找到了这个很好的答案Action:

.net c# embedded-resource switch-statement

15
推荐指数
2
解决办法
7458
查看次数

Java getClass().getResource("file")导致NullPointerException

我正在关注zetcode Snake java游戏教程并始终收到此错误:

ImageIcon iid = new ImageIcon(this.getClass().getResource("ball.png"));
ball = iid.getImage();

Exception in thread "main" java.lang.NullPointerException
    at javax.swing.ImageIcon.<init>(Unknown Source)
    at snake2.Board.<init>(Board.java:52)
    at snake2.Snake.<init>(Snake.java:10)
    at snake2.Snake.main(Snake.java:22)
Run Code Online (Sandbox Code Playgroud)

我实际上只是复制并粘贴代码以查看它是如何工作的.它们也在合适的包装中; 但是当我尝试运行它时,我总是会遇到这个错误.

java nullpointerexception embedded-resource imageicon

15
推荐指数
4
解决办法
5万
查看次数

具有.resx资源的Windows Phone 8.1上的MissingManifestResourceException

我正在开发一款同时针对Android的Windows Phone 8.1应用程序(Xamarin)

我一直在PCL上添加我的字符​​串资源(.resx)并在我的启动器项目中引用它们以在我的视图上使用它,这在WP 8.1 silverlight上运行正常,但在配置项目以释放​​并运行它时在WinRt上运行在设备上,由于某种原因,我总是得到一个MissingManifestResourceException.我已经尝试过解决这个问题的所有解决方案而没有任何成功.

请注意,在模拟器上一切正常,当解决方案配置器设置为Debug时,它也适用于设备和模拟器.这里唯一的组合是设备和发布.

应用源代码在Github上.

我能够创建一个简单的项目来复制这个问题,基本上它是一个WP 8.1应用程序和一个带有嵌入式资源的PCL项目,下载链接

有人有什么想法吗?

编辑:经过一些更多的测试,我尝试运行一个旧的Windows 8.1应用程序,我已经使用相同的本地化模型,并出现相同的问题所以它接缝是一个工具问题而不是配置问题,因为Windows 8.1应用程序是在市场上,一切都很顺利.

resx embedded-resource windows-phone windows-runtime windows-phone-8.1

15
推荐指数
2
解决办法
2357
查看次数

ASP.NET在Bundling中使用嵌入式资源

我正在尝试实现一种通用方法,为我的Web解决方案中的不同程序集提供使用嵌入式资源中嵌入的JavaScript和CSS文件的可能性.此博客文章显示了使用VirtualPathProvider的技术.这很好,但VirtualPathProvider需要包含在包含嵌入资源的每个程序集中.

我试图从博客文章中增强VirtualPathProvider,以便可以将程序集传递给它并从程序集中加载资源:

public EmbeddedVirtualPathProvider(VirtualPathProvider previous, Assembly assembly)
{
    this.previous = previous;
    this.assembly = assembly;
}
Run Code Online (Sandbox Code Playgroud)

初始化时,它从传递的程序集中读取所有嵌入的资源:

protected override void Initialize()
{
    base.Initialize();

    this.assemblyResourceNames = this.assembly.GetManifestResourceNames();
    this.assemblyName = this.assembly.GetName().Name;
}
Run Code Online (Sandbox Code Playgroud)

GetFile从传递的程序集中读取内容:

public override VirtualFile GetFile(string virtualPath)
{
    if (IsEmbeddedPath(virtualPath))
    {
        if (virtualPath.StartsWith("~", System.StringComparison.OrdinalIgnoreCase))
        {
            virtualPath = virtualPath.Substring(1);
        }

        if (!virtualPath.StartsWith("/", System.StringComparison.OrdinalIgnoreCase))
        {
            virtualPath = string.Concat("/", virtualPath);
        }

        var resourceName = string.Concat(this.assembly.GetName().Name, virtualPath.Replace("/", "."));
        var stream = this.assembly.GetManifestResourceStream(resourceName);

        if (stream != null)
        {
            return new EmbeddedVirtualFile(virtualPath, stream);
        } …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc virtualpathprovider embedded-resource bundling-and-minification

15
推荐指数
1
解决办法
1762
查看次数

资源文件放在构建Java 9模块的Gradle项目中的哪个位置?

从IDEA 2018.2.1开始,IDE从模块化的依赖项开始错误突出显示"不在模块图"中的包.我module-info.java在项目中添加了一个文件并添加了必需的requires语句,但我现在无法访问src/main/resources目录中的资源文件.

(有关完整示例,请参阅此GitHub项目.)

当我使用./gradlew run./gradlew installDist+生成的包装器脚本时,我能够读取资源文件,但是当我从IDE运行我的应用程序时,我不是.

我向 JetBrains 提出了一个问题,我学到的是IDEA正在使用模块路径,而Gradle默认使用类路径.通过向我添加以下块build.gradle,我能够让Gradle ...无法读取任何资源文件.

run {
    inputs.property("moduleName", moduleName)
    doFirst {
        jvmArgs = [
                '--module-path', classpath.asPath,
                '--module', "$moduleName/$mainClassName"
        ]
        classpath = files()
    }
}
Run Code Online (Sandbox Code Playgroud)

我尝试export将我感兴趣的资源目录作为"包",并在编译时遇到构建失败:

错误:包是空的或不存在:mydir

使用opens而不是exports获得相同的错误,但降级为警告.

我甚至尝试移动mydir资源目录src/main/java,但是这产生了相同的错误/警告,并且还导致资源没有被复制到build目录中.

应该在Java 9中使用哪些资源,以及如何访问它们?


注意:在继续研究问题之后,我已经相当大地编辑了这个问题.在最初的问题中,我还试图弄清楚如何在资源目录中列出文件,但在调查过程中我确定这是一个红色的鲱鱼 - 首先,因为阅读资源目录只有在资源是从file:///URL 读取(也许甚至不是),第二,因为普通文件也没有工作,所以很明显问题是资源文件一般而不是专门用于目录.


解:

按照Slaw的回答,我将以下内容添加到build.gradle:

// at compile …
Run Code Online (Sandbox Code Playgroud)

java embedded-resource gradle java-9 java-module

15
推荐指数
1
解决办法
1852
查看次数