首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SxS清单中的程序集标识名称

SxS清单中的程序集标识名称
EN

Stack Overflow用户
提问于 2018-02-28 02:14:01
回答 1查看 386关注 0票数 2

我有两个关于激活上下文API和SxS清单的问题。它们看起来很简单,但我仍然找不到任何好的答案。

我有两个dll库,文件名分别为foo.dll和bar.dll,它们都有嵌入的清单,foo依赖于bar。有没有办法给这两个文件分配assemblyIdentity名而不是它们的文件名?例如,如果我希望bar.dll的程序集标识为CompanyName.Subsection.bar?如果我像这样改变它的身份-当我试图加载foo.dll "Dependent Assembly CompanyName.Subsection.bar,type="win32",version="0.1.2.3" could not be found"时,我得到了错误。当然,如果我将名称程序集标识指定为文件名(<assemblyIdentity name="bar"),一切正常,但是有没有办法使用这些带点的名称呢?

foo.dll

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity name="foo" version="0.1.2.3" type="win32"/>
<dependency>
    <dependentAssembly>
        <assemblyIdentity name="CompanyName.Subsection.bar" version="0.1.2.3" type="win32" />
    </dependentAssembly>
</dependency>
<file name="foo.dll">
</file>
</assembly> 

bar.dll

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity name="CompanyName.Subsection.bar" version="0.1.2.3" type="win32"/>
<file name="bar.dll">
</file>
</assembly> 
EN

回答 1

Stack Overflow用户

发布于 2018-09-06 19:38:01

如果不是嵌入bar.dll的清单,而是将它与dll本身放在一个单独的文件夹中,就可以做到这一点。即:

代码语言:javascript
复制
foo.dll
CompanyName.Subsection.bar/
├── bar.dll
└── CompanyName.Subsection.bar.manifest

您仍然需要将第一个清单嵌入到foo.dll中。我确信您可以从该清单中删除以下代码片段,因为它是一个嵌入式清单,因此不需要指定属于程序集的dll:

代码语言:javascript
复制
<file name="foo.dll">
</file>

bar.dll的清单很好,但请确保文件夹和清单文件的名称与assemblyIdentity元素中指定的完全一致(请参阅上面的文件夹结构示例)。

另请注意,您可以诊断与使用sxstrace命令行工具加载SxS程序集相关的问题。分步说明:

  1. 从Visual Studio命令行运行sxstrace trace -logfile:mytrace.etl。在您按ENTER键之前,该命令不会返回。但是,不要按ENTER。
  2. 启动加载foo.dll的应用程序以重现您的问题
  3. ,然后在命令行窗口中按ENTER停止sxstrace
  4. 您现在有一个不可读的文件mytrace.etl。通过运行sxstrace parse -logfile:mytrace.etl -outfile:mytrace.txt将其转换为可读格式。您将获得一个文件mytrace.txt,其中显示了在加载foo.dll时发生了什么,以及它在何处无法解析它的一些dependencies.
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49015320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档