我有一个 ClickOnce 应用程序,除非客户端计算机具有 .NET 3.5 SP1,否则它不会运行。当我在 Storyboard 上调用 Stop() 时,它会崩溃。在我的客户端虚拟机上安装 SP1 后,一切正常。
我的问题是我正在使用 ClickOnce 进行部署,并且我已将 .NET 3.5 作为先决条件,但我也不知道如何要求 SP1。
有任何想法吗?
更新
我检查了先决条件对话框,它肯定不存在。我在 Win 7 机器(64 位)上运行 VS 2008。
我有一个 ClickOnce 应用程序,除非客户端计算机具有 .NET 3.5 SP1,否则它不会运行。当我在 Storyboard 上调用 Stop() 时,它会崩溃。在我的客户端虚拟机上安装 SP1 后,一切正常。
我的问题是我正在使用 ClickOnce 进行部署,并且我已将 .NET 3.5 作为先决条件,但我也不知道如何要求 SP1。
有任何想法吗?
更新
我检查了先决条件对话框,它肯定不存在。我在 Win 7 机器(64 位)上运行 VS 2008。
Go to Properties / Publish / Prerequisites and click on ".NET Framework 3.5 SP1" (instead of ".NET Framework 3.5") :-)
出于这个原因(和其他原因),我不会给我的最终用户最终的ClickOnce安装位置。相反,我将他们发送到一个页面/站点,该页面/站点在允许他们安装应用程序之前在他们的 PC 上运行各种检查(.NET Framework 级别就是这样一种检查)。
如果您可以为此应用程序要求 FullTrust,您可以在HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5
“版本”处检索 REG_SZ,并在应用程序启动时将其与 3.5.30729.01 进行比较。
您需要在 Windows SDK 引导程序包文件夹中有 .NET 3.5 SP1 的引导程序包。对于 Windows 7 上的 VS2008(我的设置),这是:
C:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages
此文件夹最初在我的计算机上只有名为 DotNetFX35 的子文件夹,用于 .NET FrameWork 3.5 RTM(不是 SP1)。我需要 DotNetFX35SP1,并在 (...)\Windows\v7.0A 下找到它。我认为 v7.0A 是随 Visual Studio 2010 安装的,但对此我不确定。无论如何,我已经在我的博客站点上的这个地址提供了引导文件:
http://posts.nilzorblog.com/stackoverflow/DotNetFX35SP1.zip
只需下载此包并将其解压缩到 (...)\Packages 下名为 DotNetFX35SP1 的文件夹中,然后重新启动 Visual Studio 2008 即可!