我有一个Windows窗体应用程序,它是在Visual Studio 2005中开发的,并通过ClickOnce部署到IIS服务器。我已升级到VS2008所以我决定升级并重新部署应用程序(在测试中)。我运行了升级向导,手动将项目的目标运行时更改为3.5,从部署服务器中删除了所有旧的发布文件,并发布了应用程序。
我可以毫无问题地启动它(即“在我的机器上工作”),但是当其他人启动它时会出现错误。
无法继续。应用程序格式不正确。请联系应用程序供应商以获取帮助。
错误对话框中有一个详细信息...按钮。以下是一些内容。
PLATFORM VERSION INFO
Windows : 5.1.2600.131072 (Win32NT)
Common Language Runtime : 2.0.50727.1433
System.Deployment.dll : 2.0.50727.1433 (REDBITS.050727-1400)
mscorwks.dll : 2.0.50727.1433 (REDBITS.050727-1400)
dfdll.dll : 2.0.50727.1433 (REDBITS.050727-1400)
dfshim.dll : 2.0.50727.1433 (REDBITS.050727-1400)
请注意,CLR是2.0。
ERROR SUMMARY
Below is a summary of the errors, details of these errors are listed later in the log.
* Activation of http://{deployment host name}/ resulted in exception. Following failure messages were detected:
+ Exception reading manifest from http://{deployment host name}/{application name}.application: the manifest may not be valid or the file could not be opened.
+ Manifest XML signature is not valid.
+ No signature was present in the subject.
我没有签署申请。这是一个完全内部的部门应用程序。我怀疑问题不在于缺少签名,而是.NET正在使用错误的运行时,并且2.0运行时无法处理3.5清单。但如果是这种情况,我无法弄清楚如何使用3.5运行时。
我想也许旧的版本是缓存的,所以我让用户运行rundll32 %windir%\system32\dfshim.dll CleanOnlineAppCache
。这清除了缓存(应用程序下次完全重新加载),但它没有解决问题。
有没有人有像这样的问题将ClickOnce应用程序从2.0升级到3.5?知道我的问题是什么吗?
答案 0 :(得分:1)
请确认您已将.NET Framework 3.5设置为先决条件。
项目设置 - >发布 - >先决条件