[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,如下图:

pic2

并且在论坛中还有人还提出了一个解决办法,就是在升级Blend,为Blend打SP1补丁,我的Blend是中文版的,所以我就在微软的下载中心中找到BlendSP1_zh-Hans.exe,安装完成后就可以发现WP7的项目模板已经回来了,并且可以正常创建项目。

至此WP7安装的纠结日子就结束了,也结束了仅使用VS开发的残废瘸腿日,庆祝下!

PS:打完中文版的SP1补丁后发现WP7项目模板的说明竟然是中文的,看来微软WP7中文化进展速度很快!

posted @ 2011-04-25 09:46  kyo-yo  阅读(1161)  评论(7编辑  收藏