如何在.NET 3.0计算机上部署ClickOnce .NET 3.5应用程序?

时间:2010-05-17 14:01:41

标签: .net .net-3.5 deployment clickonce .net-3.0

我有.NET 3.5 SP1 WPF应用程序,我使用ClickOnce成功部署到客户端计算机。

现在我有了新的要求 - 我们的一个客户需要在装有.NET 3.0的机器上运行应用程序,并且完全不可能在机器上升级或安装任何东西。我已经尝试运行3.5应用程序,将一些3.5 .NET Framework DLL复制到应用程序目录,并且它没有任何问题。目前唯一的问题是ClickOnce。我已经在应用程序文件列表中包含了3.5 .NET Framework System。*。dll文件,但它总是在3.0机器上中止安装,并显示以下错误消息:

  

无法安装或运行   应用。该应用程序需要   程序集System.Core版本   3.5.0.0首先安装在全局程序集缓存(GAC)中。请   联系您的系统管理员。

我已经尝试在项目的“发布”标签上调整先决条件,但没有任何组合解决了这个问题。

ClickOnce的哪个部分负责检查先决条件?我已经尝试使用mageui.exe进行部署,但3.5 .NET Framework错误仍然存​​在。我应该怎么做才能使ClickOnce停止检查任何先决条件?

使用Visual Studio 2010创建项目。


我可能只是找到问题的原因 - ClickOnce发布过程(以及MageUI)也会生成一个应用程序清单文件,该文件在某些​​3.5程序集(System.Core,System.Data.Entity)上定义依赖项“preRequisite”。所以我只需要强制ClickOnce发布/ MageUI不以某种方式生成这些依赖...

3 个答案:

答案 0 :(得分:1)

如何使用针对3.0 Framework的存根.exe?您可以在同一个ClickOnce安装中部署应用程序和存根,并将存根作为入口点。存根唯一的工作就是启动3.5可执行文件。

我不确定您是否能够使用Visual Studio创建此类部署。您可能需要使用MageUI代替。

修改
在回复您的评论时,请尝试从清单文件中删除“先决条件”条目。只需使用文本编辑器删除它们,然后使用命令行Mage重新启动。

答案 1 :(得分:0)

在没有.NET 3.5的计算机上,无法运行以.NET 3.5为目标的应用程序。如果要在仅支持.NET 3.0的计算机上安装此应用程序,则必须将目标框架降级到.NET 3.0,并相应地更改先决条件。

在C#解决方案中,这是在每个项目的属性页面的“应用程序”选项卡上。

在VB解决方案中,IIRC位于“编译”选项卡的“高级选项”下。

答案 2 :(得分:0)

我收到此消息是因为我选中了创建桌面快捷方式的选项 - 必须添加.NET Framework 3.5 SP1的先决条件才能修复它,因此您可能必须在程序中添加快捷方式(如果这导致了消息,你不能升级框架)