0

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

.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 引用了旧程序集,所以它没有获取合并的资源...... Dooh!

4

1 回答 1

0

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

于 2012-08-15T01:13:46.000 回答