[WP7] WP7安装那些郁闷的事-续
在上一篇文章中我说到我在WP7安装中遇到的问题,其中有个Blend无法找到WP7的项目模板,并且我介绍了一种解决方法就是:用winrar打开Blend_WindowsPhone_en.EXE,然后找一个名叫BlConen.cab的,并解压缩出来的方法,虽然这样做能将Blend中的WP7项目模板找回,但是实际上是不能用的,因为这时如果通过Blend来创建WP7项目的时候就发现Blend显示:Windows Phone 创作已到期,并且通过Blend打开VS创建的WP7项目会显示无法打开,需要重新安装(后来看了下安装包BlConen.cab,感觉其应该是Blend用的Samples,但却又不是)。
于是纠结了好久,将Blend整个目录翻来覆去的研究了好久,同时研究了下Blend下的几个项目模板格式,发现Blend本质还是通过.vstemplate来调用模板文件的(VS也是同样),然后仔细看了下我所用的WP7的项目模板,如下:
<?xml version="1.0" encoding="utf-8"?>
<VSTemplate Version="3.0.0" Type="Project" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.microsoft.com/developer/vstemplate/2005">
<TemplateData>
<Name _locID="BLEND_ProjectName">Windows Phone Control Library</Name>
<Description _locID="BLEND_ProjectDescription">A project for creating custom controls that can be reused across other Windows Phone applications.</Description>
<Icon>ProjectIcon.png</Icon>
<TemplateID>Microsoft.Blend.WindowsPhone.ControlLibrary</TemplateID>
<ProjectType>CSharp</ProjectType>
<ProjectSubType>WindowsPhone</ProjectSubType>
<RequiredFrameworkVersion>4.0</RequiredFrameworkVersion>
<CreateNewFolder>true</CreateNewFolder>
<DefaultName>WindowsPhoneControlLibrary</DefaultName>
<ProvideDefaultName>true</ProvideDefaultName>
<PromptForSaveOnCreation>false</PromptForSaveOnCreation>
<EnableEditOfLocationField>true</EnableEditOfLocationField>
<EnableLocationBrowseButton>true</EnableLocationBrowseButton>
<TemplateGroupID>Windows Phone</TemplateGroupID>
<NumberOfParentCategoriesToRollUp>0</NumberOfParentCategoriesToRollUp>
<SortOrder>59</SortOrder>
<MinFrameworkVersion>4.0</MinFrameworkVersion>
<MaxFrameworkVersion>4.0</MaxFrameworkVersion>
</TemplateData>
<TemplateContent>
<Project File="WindowPhoneControlLibrary.csproj" ReplaceParameters="true">
<ProjectItem ReplaceParameters="true" TargetFileName="Properties\AssemblyInfo.cs">AssemblyInfo.cs</ProjectItem>
<ProjectItem ReplaceParameters="true" OpenInEditor="true">MainControl.xaml</ProjectItem>
<ProjectItem ReplaceParameters="true" SubType="Code">MainControl.xaml.cs</ProjectItem>
</Project>
</TemplateContent>
</VSTemplate>
其中TemplateID就是Blend用于识别项目模板的关键,如果将此处的TemplateID改成其他Silverlight类型,如:Microsoft.Blend.SilverlightApplication,再次打开Blend就可以发现WP7的项目模板已经不提示创作到期了,但是还是无法正常创建,还是提醒需要重新安装WP7开发包,由此可见,Blend中缺少WP7的相关文件(再次期间我还尝试将WP7开发包的Licenses移入电脑中的Expression中,可惜还无效),此时也尝试过重新安装,但是还是和上一篇文章一样提示Blend for Windows Phone 无法安装,需要卸载当前安装的Blend。
最后实在没办法只好使用神器GOOGLE,在几个小时的刨坟过程当中,在MSDN及WP7的开发者官方论坛中发现也有人又类似的问题,其主要原因就是Blend版本号的问题:
由于Blend发布时间比WP7开发包时间早,而我的安装的版本号是:4.0.202XX.0(具体记不得了),而WP7开发包的版本号是:4.0.20901.0,如下图:
并且在论坛中还有人还提出了一个解决办法,就是在升级Blend,为Blend打SP1补丁,我的Blend是中文版的,所以我就在微软的下载中心中找到BlendSP1_zh-Hans.exe,安装完成后就可以发现WP7的项目模板已经回来了,并且可以正常创建项目。
至此WP7安装的纠结日子就结束了,也结束了仅使用VS开发的残废瘸腿日,庆祝下!
PS:打完中文版的SP1补丁后发现WP7项目模板的说明竟然是中文的,看来微软WP7中文化进展速度很快!
出处:http://kyo-yo.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。