我的团队正致力于为内部应用程序开发新功能。我们已经对该项目进行了分支,并一直在开发我们的功能。现在,我正在尝试使用Click Once部署到QA环境。当我尝试使用部署的Click Once安装程序安装应用程序时,出现此错误:
无法安装或运行该应用程序。该应用程序需要 该程序集Infragistics4.Win.UltraWinGrid.ExcelExport.v15.2版本 15.2.20152.1000首先安装在全局程序集缓存(GAC)中。
当我打开.manifest文件时,我可以看到原因。此程序集列为先决条件......
<dependency>
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
<assemblyIdentity name="Infragistics4.Win.UltraWinGrid.ExcelExport.v15.2" version="15.2.20152.1000" publicKeyToken="7DD5C3163F2CD0CB" language="neutral" processorArchitecture="msil" />
</dependentAssembly>
</dependency>
我们不希望GAC中有这个程序集。 (请注意,没有我们的新功能的应用程序的QA版本工作正常,并且在.manifest中没有此依赖项。)
所以我无法弄清楚为什么它被列为先决条件。如果我打开项目属性并选择“发布”选项卡,我可以配置“单击一次”部署。所以我打开“应用程序文件”对话框并找到程序集。发布状态设置为“包含”(而不是“先决条件”或“先决条件(自动)”。)所以我想弄清楚的是为什么这会被添加到我的清单中这样。
其他信息:如果我在.manifest文件中向下滚动,我也会看到此条目:
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Infragistics4.Win.UltraWinGrid.ExcelExport.v15.2.dll" size="147456">
<assemblyIdentity name="Infragistics4.Win.UltraWinGrid.ExcelExport.v15.2" version="15.2.20152.2023" publicKeyToken="7DD5C3163F2CD0CB" 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>9PKMWPyXwq1e6MjDM2jN++yzombFFoRA/GlyrvJTu00=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
请注意,这是同一程序集的较新版本。当我对“应用程序文件”部分进行更改时,我会在此依赖项标记中看到它们,而不是在第一个依赖项标记中。知道第一个依赖标记来自何处?