且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

[WP7] WP7安装那些郁闷的事-续

更新时间:2022-09-18 12:51:18

  在上一篇文章中我说到我在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,如下图:

[WP7] WP7安装那些郁闷的事-续

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

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

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



本文转自kyo-yo博客园博客,原文链接:http://www.cnblogs.com/kyo-yo/archive/2011/04/25/Something-About-WP7-Install-2.html,如需转载请自行联系原作者