1.2.支持的操作系统
Microsoft Synchronization Services for ADO.NET 1.0 for Devices 不随 VS2008 SP1 一起安装。用户必须下载 .msi 文件才能启用“智能设备”项目中的“本地数据库缓存”功能。
解决此问题的方法:
从下载中心下载并安装 Microsoft Synchronization Services for ADO.NET 1.0 for Devices 的 .msi 文件。
解决此问题的方法:
向防火墙添加 SPInstaller 例外。这将使防火墙停止阻止 SpInstaller 所要求的通信。然后,再次运行 Visual Studio 2008 SP1 安装。在 Windows 7 RC 上尝试安装 SQL Server 2008 RTM 或 SQL Server 2005 RTM/SP1/SP2 时,您会收到警告,指出 SQL Server 与该版 Windows 具有已知的兼容性问题。 由于 SQL Server 通过 Visual Studio 进行再分发,若用户选择随 Visual Studio 一起安装 SQL Server,则安装将会受到影响。 触发该兼容性警告的问题已在 SQL Server 2008 SP1 和 SQL Server 2005 SP3 中修复。
要解决此问题:
安装 Visual Studio 2008 并选择安装 SQL Server 2005 Express Edition SP2(默认已选中)。
或者,您可以先安装 SQL Server 2005 Express Edition SP3,然后再安装 Visual Studio 2008。
更多信息:
如果您必须要在 Windows 7 RC 上安装 SQL Server 2008,并且希望避免出现警告消息,则您可以自己创建 SQL Server 2008 Service Pack 1 程序包。 请遵照 Peter Saddow 介绍的操作步骤:创建包含 SQL Server 2008 RTM 和 Service Pack 1 的合并(补充)程序包(英文)
将 Visual Studio 2008 SP1 应用于计算机上的多种产品(例如,Visual Studio 2008 英文版和 Visual Studio 2008 西班牙语版)时,从其中一个产品卸载 SP1 会使其他 Visual Studio 2008 产品的文件降级。
解决此问题的方法:
修复仍安装有 Visual Studio 2008 SP1 的产品,或者同时卸载这些产品的 SP1。
对于 Windows Vista 或更高版本:
1. 打开“控制面板”。
2. 单击“程序”。
3. 单击“卸载程序”。
4. 选择一个仍安装有 SP1 的 Visual Studio 2008 版本。
5. 单击“卸载/更改”。
6. 提示时单击“继续”以进行提升。
7. 加载安装组件后单击“下一步”。
8. 单击“修复/重新安装”。
对于 Windows Vista 之前的操作系统:
1. 打开“控制面板”。
2. 单击“添加或删除程序”。
3. 单击“卸载/更改”。
4. 加载安装组件后单击“下一步”。
5. 单击“修复/重新安装”。
在启用 Windows Vista 边栏时 Visual Studio 2008 SP1 安装失败。
解决此问题的方法:
1. 右击任务栏最右侧的通知区域中的“边栏”图标。
2. 单击“退出”。
如果已安装 KB949325 或 Silverlight Tools Beta 1,则将无法安装 Visual Studio 2008 SP1。如果在计算机处于此状态时尝试进行安装,则您可能会看到一条消息,指明 Visual Studio 2008 SP1 安装与以前安装的产品不兼容。
解决此问题的方法:
卸载 Silverlight Tools Beta 1:
1. 在“控制面板”中,打开“添加或删除程序”。
2. 卸载 Microsoft Silverlight Tools Beta 1 for Visual Studio 2008。
卸载 Windows Vista 或更高操作系统版本上的 KB949325:
1. 在“控制面板”中,打开“添加或删除程序”。
2. 在任务栏上单击“查看已安装的更新”。
3. 卸载位于 Microsoft Visual Studio 2008 之下的 KB949325。
卸载 Windows XP 或更早操作系统版本上的 KB949325:
1. 在“控制面板”中,打开“添加或删除程序”。
2. 在窗口顶部单击“显示更新”。
3. 卸载位于 Microsoft Visual Studio 2008 之下的 KB949325。
解决此问题的方法:
执行以下两项操作之一:解决此问题的方法:
可单独下载 MSDN Library for Visual Studio 2008 SP1。请访问 Microsoft 下载中心。解决此问题的方法:
SQL Server Compact 3.5 SP1 for Devices MSI 可从 Microsoft 下载中心下载获得。在未安装 .NET Framework 2.0 SP2 和 .NET Framework 3.0 SP2 的 Windows Vista 计算机上安装 Visual Studio 2008 SP1 时,可能会显示要求重新启动计算机的 Windows 自动更新通知。若允许立即重新启动 Windows Update,则将导致 Visual Studio 安装程序失败。
解决此问题的方法:
请将重新启动推迟到 Visual Studio SP1 安装完成后再执行。
.在已安装 .NET Framework 2.0 或 .NET Framework 2.0 SP1 并运行 Windows XP、Windows Server 2003 或 Windows 2000 的计算机上无法安装 NET Framework 2.0 SP2。
.NET Framework 2.0 SP2 安装程序将卸载早期版本的 .NET Framework 2.0 和 .NET Framework 2.0 SP1。当 Windows Installer 卸载早期版本时,它将使用缓存的安装数据库。执行卸载操作的过程中,如果 Windows Installer 在其缓存中或原始源位置找不到早期更新的安装包,则安装将失败。如果发生不完整的回滚,此安装失败还可能导致使用 .NET Framework 的应用程序失败。
此问题可能是由以下某一原因导致的:
Windows Installer 缓存缺少必需的文件。
Windows Installer 缓存已更改。此缓存对于修复、更新和卸载产品至关重要。因此,请不要移除或修改此缓存的内容。如果更改此缓存的内容,则当您尝试更新或修复基于 Windows Installer 的产品时,系统可能会提示您提供源。解决此问题的方法:
如果无法成功安装 .NET Framework 2.0 SP2,并且在安装日志文件中找到“原因”一节中所述的“解析修补程序源”文本,则可以下载 Microsoft .NET Framework 注册更正工具来解决此问题。安装非英语版本的 Microsoft Visual Studio 2008 Service Pack 1 (SP1) 后,某些本地化的“智能感知”文本可能会还原为英语。此问题出现在下列语言版本的 Visual Studio 2008 SP1 中:
若要解决此问题,请参考 KB 957507 了解详细信息,然后下载文件。
如果在安装项目的“系统必备”对话框中或在“ClickOnce 发布”中选中 .NET Framework 3.5 SP1 引导程序包,并且选中“从与我的应用程序相同的网站上下载组件”选项,则将显示下面的生成错误:
系统必备的安装位置未设置为“组件供应商的网站”,无法在磁盘上找到项“Microsoft.Net.Framework.3.5.SP1”中的文件“dotNetFx35setup.exe”。
解决此问题的方法:
更新包数据- 安装 Visual Studio 2008 SP1 RTM 修补程序后 redist 文件夹中不存在 mfc90rus.dll。
- 用户将无法使用俄语资源来编写并分发本地化的应用程序。
解决此问题的方法:
用户可以将 MFC90RUS.DLL 从 winsxs 文件夹复制到 redist 文件夹。
如果在安装 Visual Studio 2008 的过程尚未选中以下功能,则在 Visual Studio 2008 SP1 的安装过程中可能会请求原始安装媒体:
在“Visual C++ 类和模板库”之下
- ATL MFC 源代码
- ATL MFC 静态库 ANSI
- ATL MFC 静态库 Unicode
- ATL MFC 共享库 ANSI
- ATL MFC 共享库 Unicode
在“Visual C++ 工具”下
- MFC 跟踪实用工具
- Visual C++ 错误查找
- Win32 工具
解决此问题的方法:
提供原始媒体。
只要在开发过程中选择相应的选项以面向 .NET Framework Client Profile,ClickOnce 就不会自动检查 SP1,即使添加对 System.Data.Entity(需要 SP1)的引用也是如此。
如果在包含对 System.Data.Entity 的引用的项目中清除“仅限客户端的框架子集”选项,则应用程序将错误地检查不具有 SP1 的 .NET Framework 3.5。
解决此问题的方法:
强制使 ClickOnce 检查 .NET Framework 3.5 SP1:
对于 Visual Basic 项目:
打开项目属性(在解决方案资源管理器中双击“我的项目”)。
单击“编译”选项卡。
单击“高级编译选项”。
清除“仅限客户端的框架子集”选项。
从项目中移除对 System.Data.Entity 的引用。
再次向项目中添加对 System.Data.Entity 的引用。
对于 C# 项目:
打开项目属性(在解决方案资源管理器中双击“属性”)。
单击“应用程序”选项卡。
清除“仅限客户端的框架子集”选项。
从项目中删除对 System.Data.Entity 的引用。
再次向项目中添加对 System.Data.Entity 的引用。
publish.htm 页面是在未使用检测目标计算机上是否存在 .NET Framework Client Profile 的脚本的情况下生成的。
解决此问题的方法:
1. 确保应用程序面向仅限客户端的框架子集。
对于 Visual Basic 项目:
打开项目属性(在解决方案资源管理器中双击“我的项目”)。
单击“编译”选项卡。
单击“高级编译选项”。
选择“仅限客户端的框架子集”选项。
对于 C# 项目:
打开项目属性(在解决方案资源管理器中双击“属性”)。
单击“应用程序”选项卡。
选择“仅限客户端的框架子集”选项。
2. 若要获取正确的脚本,请选择 .NET Framework 3.5 SP1 系统必备组件并发布应用程序。
3. 在项目的“发布”属性中,将系统必备包改回为 .NET Framework Client Profile 并清除“每次发布后都自动生成部署网页”选项。
4. 再次发布应用程序。
在两种情况下会出现此问题:
1. 运行数据库中的更新模型后,为数据库中的新外键创建了关联但并未显示在关系图中。
2. 在设计器中执行撤消/重做操作之后,关联连线放置在关系图中的错误位置。
解决此问题的方法:
以下是几种解决方法:
- 保存该文件。关闭设计器。再次打开该文件。
- 右击关系图的空白区域,然后单击“布局关系图”。这样可能会改变以前对关系图所做的任何手动布局更改。
- 手动移动相关的实体以刷新其呈现效果。
安装和部署项目中提供的指向 Visual Studio 2008 ReportViewer (ReportViewer.exe) 的默认重定向链接错误地重定向到非英语操作系统上的 ReportViewer (ReportViewerLP.exe) 的语言包。
解决此问题的方法:
1. 打开 %Program Files%\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\ReportViewer\<locale>\package.xml
2. 在 package.xml 中,用 http://go.microsoft.com/fwlink/?LinkID=98185&clcid=0x409 替换链接 http://go.microsoft.com/fwlink/?LinkID=98185。
3. 确保未更改指向 ReportViewerLP.exe 的链接 http://go.microsoft.com/fwlink/?LinkID=98185&clcid=<CLID>。
在安装 Visual Studio Team Server 2008 SP1 客户端并使用其运行负载测试时,必须使用 Visual Studio Team Server 2008 SP1 控制器才能运行测试。连接到该控制器的所有联机代理还必须是 Visual Studio Team Server 2008 SP1 代理。如果仅在 Visual Studio 客户端上安装 SP1 并且使用未安装 Visual Studio Team Server 2008 SP1 版本的测试远程测试机组运行负载测试,则负载测试将立即失败,并且“测试结果”窗口中将显示“没有执行”。如果单击“测试结果”窗口中的“测试运行错误”链接,则将显示如下所示的错误:
未能对测试运行 'username@MYCONTROLLER 2008-06-13 11:17:28' 进行排队:类型‘Microsoft.VisualStudio.TestTools.LoadTesting.LoadTestConstantLoadProfile’的对象无法转换为类型‘Microsoft.VisualStudio.TestTools.WebStress.WebTestLoadProfile’。
(列出的第一个类型取决于负载测试所使用的负载模式的类型。)
Visual Studio 客户端、控制器和代理的版本必须匹配,因为 Visual Studio Team Server 2008 SP1 增强了 API 以实现不同的负载测试模式。
解决此问题的方法:
将客户端、控制器和代理升级到 Visual Studio 2008 SP1。
由安装项目创建的部署包中的某些系统必备组件的安装在最终用户指定通过网络安装时会失败。与那些组件相关的 ClickOnce 部署包在安装时也会失败。
该问题是由于某些组件中的错误的 URL 引起的。要修复该问题必须手动编辑 package.xml 中的 URL。
解决此问题的方法:
1. 打开 %Program Files%\Microsoft SDKs\Windows\6.0A\Bootstrapper\Packages\
2. 在下述三个文件夹中编辑 package.xml 文件
a.\VSTOR30\<LANG>\
b.\SqlExpress\<LANG>\
c.\VBPowerPacks\<LANG>\
并将
a.
b.
c.
请注意:需要在“amp;clcid=0xXXX”前加上“&”字符。“0xXXX” 指相关语言标示符。简体中文为“0x804”。
如果通过打开部署清单(.vsto 文件)、Office 应用程序、文档或工作簿安装解决方案,则可能会收到错误消息。这是因为解决方案安装程序不会执行系统必备检查。
解决此问题的方法:
解决此问题的方法有两种:
- 安装 Visual Studio Tools for the Office system 3.0 Runtime SP1 的 SP1 修补程序。
- 通过运行安装程序安装解决方案。
安装程序检查正确版本的系统必备组件并根据需要安装它们。
通过项目的属性页可以选择 .NET Framework Client Profile 作为目标框架(即使项目不支持该目标框架)。
解决此问题的方法:
如果项目将 Office 2003 用作目标版本,请不要在项目的属性页中选择“仅限客户端的框架子集”。
当针对 .NET Framework Client Profile 运行库开发 Office 解决方案时,可看到这些生成警告消息:“项目具有对程序集 <名称> 的引用。此程序集不是 .NET Framework Client Profile 的一部分。 若不具有此引用,则可能会出现编译或运行时错误。”或者“所引用的程序集 <名称> 在 <程序集> 上具有一个依赖项,该依赖项未作为 .NET Framework Client Profile 的一部分列出。如果此依赖引用是必需的,则可能会收到编译错误。”
如果忽略这些警告,则可能会因为缺少程序集而收到下面的异常:“未处理的异常: System.IO.FileNotFoundException: 无法加载文件或程序集 <程序集> 或其一个依赖项。系统找不到指定的文件”。
解决此问题的方法:
如果应用程序使用依赖于 .NET Framework Client Profile 中未包含的程序集的功能,则请确保项目将完整的 .NET Framework 3.5 用作目标框架。
对于 Visual Basic 项目:
对于 C# 项目:
默认情况下,将解决方案引导程序配置为从 Web 下载主互操作程序集包。但是,无法下载此包;必须将其安装在与应用程序相同的位置。
解决此问题的方法:
您可以忽略此警告。
即使在“系统必备”对话框中选中“从组件供应商的网站上下载系统必备组件”,主互操作程序集包也将自动发布到与应用程序相同的位置。
当发布解决方案时,显示下面的警告:“‘Visual Studio Tools for Office system 3.0 Runtime Service Pack 1’需要项‘.NET Framework Client Profile’,但未包括它。”
出现此警告的原因是将 Visual Studio Tools for Office system 3.0 Runtime Service Pack 1 选择为安装系统必备组件。但是,.NET Framework 3.5 Service Pack 1 和 .NET Framework Client Profile 包均未选中。
解决此问题的方法:
如果项目面向 .NET Framework Client Profile,则在运行应用程序时,应用程序将引发 FileNotFound 异常。发生这种情况是因为 ServerDocument 类要求完整的 .NET Framework 3.5。
解决此问题的方法:
对于 Visual Basic 项目:
如果 Silverlight Tools Beta 2 是以前安装的,则在安装 Visual Studio 2008 SP1 后,Visual Studio 将无法打开 Silverlight 项目,直到更新了 Silverlight Tools Beta 2 安装。
解决此问题的方法:
从 http://go.microsoft.com/fwlink/?LinkID=120032 下载针对 Visual Studio 2008 SP1 的已更新 Silverlight Tools Beta 2。
创建 WCF 服务库项目时,可以在项目“属性”页的“生成”选项卡上将输出路径从默认的 bin\debug\ 更改为相对路径,例如“.”或“..”。然后,在尝试调试服务时,WCF 服务主机无法承载该服务,并且将显示此消息:“无法直接启动带有“类库输出类型”的项目。”
解决此问题的方法:
在“生成”选项卡上,输入完全限定路径而不是相对路径。
如果在具有 TFS 插件的 Visual Studio 中创建新的 WCF 服务库项目,则在此项目中选择“添加新项”时可能会看到显示一个错误。单击“确定”关闭该错误对话框后,该项服务将成功添加并按预期方式工作。
解决此问题的方法:
单击“确定”以关闭错误对话框。
WPF 设计器中的“属性”窗口使用美国格式显示和编辑值。这与使用 en-US CultureInfo 的 XAML 约定匹配。例如,日期和数字始终采用美国格式。日期始终显示为 mm/dd/yy 格式。如果在“属性”窗口中输入一个日期值,则该值将转换为 mm/dd/yy 格式。
解决此问题的方法:
尚未提供解决方法。
在 Visual Studio 2008 SP1 中,如果使用代码重构修改类型或成员,则重构操作将传播到 XAML 文件。有关此功能的更多信息,请参见文档中的“如何:重命名在 XAML 中声明的符号”。下面的限制适用于此新功能:
- 重构操作将只能更改当前项目中的 XAML 文件,而不适用于解决方案中的所有项目
- 只能针对类型名称和某些属性使用重构。对于以下属性不能使用重构:
o Setter Property 属性
o TemplateBinding 路径属性
o Binding path 和 ElementName 属性
o ObjectDataProvider 的 MethodName 属性
解决此问题的方法:
手动完成修改;例如,使用“查找和替换”。
如果更改了 XAML 文件中的类型或成员,这些更改将不会传播到代码文件。
例如,如果使用 XAML 编辑器更改了具有关联的事件处理程序的按钮的名称,将不会更新隐藏代码。
解决此问题的方法:
必须手动修改代码文件;例如,使用“查找和替换”。
在解决方案资源管理器中,如果右击 XAML 文件,单击“重命名”,然后重命名文件,该文件名将发生更改,但不会出现任何要求重构 XAML 或隐藏代码中的类名的提示。具体而言,如果重命名由应用程序 XAML 文件中的 StartupUri 属性引用的 XAML 文件(例如,将 Window1.xaml 更改为 MainWindow.xaml),则必须手动更改 StartupUri 属性。
解决此问题的方法:
必须手动执行修改;例如,使用“查找和替换”。
在代码隐藏文件中,通过右击某个符号并单击“查找所有引用”,可以查找对该符号的所有引用。“查找所有引用”将不会查找不具有 Name 属性集的 XAML 元素。
例如:
下面的 XAML 显示了不具有名称的 MyUserControl 元素:
<Grid>
<MyUserControl/>
(...)
在代码隐藏文件中,如果右击 MyUserControl 符号并单击“查找所有引用”,则将仅会找到代码中的引用而找不到 XAML 中的引用。
解决此问题的方法:
命名控件或手动进行搜索(例如,使用“在文件中查找”)。
如果通过 XAML 绑定到 ObjectDataProvider 并且 ObjectDataProvider 执行数据库调用,则在 WPF 设计器中加载 XAML 时,该操作将十分耗时并会占用大量内存。因此,WPF 设计器可能会停止响应,直至调用该操作完成。
解决此问题的方法:
请避免在设计时按此方式设置 ObjectDataProvider。从编程角度而言,应只在运行时使用 DesignerProperties.IsInDesignMode() 方法执行耗时或占用大量内存的工作。
这是 Visual Studio 2008 SP1 中的已知问题:如果绑定操作使用 RelativeSource TemplatedParent 而不使用路径,则 WPF 设计器将加载失败。
例如:
<RepeatButton Command="{x:Static ScrollBar.LineUpCommand}"
CommandTarget="{Binding RelativeSource={RelativeSource TemplatedParent}}" />
解决此问题的方法:
使用解析为相同对象的“.”表示法指定路径。
例如:
<RepeatButton Command="{x:Static ScrollBar.LineUpCommand}" CommandTarget="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=.}" />
x64 版本的 Sgen.exe 处理包含标记为 [Obsolete(IsError=true)] 属性的类型的程序集时将不生成序列化程序集。
解决此问题的方法:
使用 x86 版本的 Sgen.exe。