【发布时间】:2017-12-28 16:28:29
【问题描述】:
我有一个引用我们网络上的 dll 的解决方案。当我为 .exe 构建解决方案时,一切正常。
当我将解决方案发布为 ClickOnce 应用程序时,我收到一条错误消息,告诉我 dll 未安装在 GAC 中。当我查看清单时,它具有 dll 作为“安装”类型的依赖项和类型“先决条件”。
<dependency>
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
<assemblyIdentity name="TXml" version="1.0.0.0" publicKeyToken="565779B9F3980A62" language="neutral" processorArchitecture="msil" />
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="TXml.dll" size="6656">
<assemblyIdentity name="TXml" version="1.0.0.0" publicKeyToken="C07302FBA7BB7B05" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /> <dsig:DigestValue>iI2aM7MMNzTPBWBCFhdSh9akFMtSNqw8HUItuXyf+xU=</dsig:DigestValue>
</hash>
</dependentAssembly>
我想知道 Visual Studio/ClickOnce 中的什么决定 dll 应该是一个附加组件?它不会显示在发布选项卡或属性下的应用程序文件中。此项目中也引用了其他 dll 引用了相同的 dll。跟这个有关系吗?
问题显然是它期望 TXml 已经安装,但我不知道为什么。这已经工作了几个月。我能想到的唯一改变是添加另一个引用 TXml 的 dll
【问题讨论】:
标签: c# visual-studio dll clickonce prerequisites