带有 al.exe 的嵌入式资源似乎在那里,但不会再出来了



我有一个项目(出于各种原因的.net 2框架),我们使用xsd.exe从对象生成模式。我们希望将这些架构嵌入到程序集中,以便在验证加载的文件时使用。XSD 文件生成成功。然后我运行 al.exe 将 xsd 转换为程序集,第三阶段是使用 ilmerge 将此程序集合并到我的主程序集中,以便它可以作为资源使用。我在那里还有其他资源,我使用使用 vs 将内容类型设置为 embeddedResource 的方式嵌入其中,我可以通过调用 GetType() 在代码中查看这些资源。Assembly.GetManifestResourceNames();我可以在程序集的清单中看到我想要的资源,而且看起来都很好(据我所知,不是路径名或大小写问题)。我已经使用 ILSpy 和 ildasm 研究了组合,一切看起来都不错?

.mresource public MySetup.EmbeddedResources.Mapping.xml      << vs2010 embedded resource
{
 // Offset: 0x00000000 Length: 0x00000C67
}
.mresource public MySetup.EmbeddedResources.Schemas.xsd      << my resource
{
  // Offset: 0x00000C6B Length: 0x00000B47
}

我已经尝试了各种选项,使用 vs 嵌入它时相同的文件嵌入正常,并且无论哪种方式在清单中都没有明显的差异。

知道为什么GetType().Assembly.GetManifestResourceNames();不返回我的资源吗?


编辑:哎呀,原来这是严重大脑冻结的结果。它实际上在工作,但由于我的单元测试 dll 引用了旧程序集,因此它没有拾取合并的资源.....哗啦!

哎呀,原来这是严重大脑冻结的结果。它实际上在工作,但由于我的单元测试 dll 引用了旧程序集,因此它没有获取合并的资源

相关内容

最新更新