我正在尝试部署一个Clickonce应用程序,该应用程序通过Nuget包引用Roselyn程序集。
Roslyn Nuget软件包的版本为1.2.20906.2 ,但是:
packages
文件夹中的dll属性时,我看到了
这些DLL的版本为1.2.20906.1 Local copy
设置为true, Specific version
。
当我发布我的clickonce时,包含和部署的Dll版本为1.2.20906.1 ,但Clickonce清单指出:
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Roslyn.Services.dll" size="1345672">
<assemblyIdentity name="Roslyn.Services" version="1.2.0.0" publicKeyToken="31BF3856AD364E35" language="neutral" processorArchitecture="msil" />
...
清单中的版本是1.2.0.0。
当我尝试在客户端上安装Clickonce时,收到错误消息(翻译自法语):Reference in the manifest does not match the identity of the downloaded assembly Roslyn.Services.dll
客户端计算机是Windows 7 x86。
我尝试在我的VS项目中定位 AnyCPU 和 x86 但没有成功。
当我在目标计算机上通过xcopy部署时,应用程序运行良好。
任何帮助表示感谢。
答案 0 :(得分:0)
VS中的引用指向哪里?它指向packages文件夹吗?如果没有,它应该,因为那是你想要部署的程序集。您应该删除引用并重新添加它,指向具有您要部署的版本的引用。它可能正在访问GAC中的旧版本,然后发布新版本,这将无法正常工作。 ClickOnce非常具体,版本必须匹配。