<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_Yan YAN's Tech Space</title><subtitle type="text">focus on mobile internet(IOS,Android,Windows Phone,Mobile WebSite) </subtitle><id>http://feed.cnblogs.com/blog/u/45215/rss</id><updated>2012-04-03T06:47:47Z</updated><author><name>Yan YAN(闫妍)</name><uri>http://www.cnblogs.com/finehappy/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/finehappy/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/45215/rss"/><entry><id>http://www.cnblogs.com/finehappy/archive/2011/10/07/2200462.html</id><title type="text">转载：ASP.net RSS 订阅输出 SyndicationFeed</title><summary type="text">源地址：http://msdn.microsoft.com/zh-cn/library/system.servicemodel.syndication.syndicationfeed(v=VS.95).aspx protected override void OnLoad(EventArgs e) { SyndicationFeed feed = new ...</summary><published>2011-10-07T03:44:00Z</published><updated>2011-10-07T03:44:00Z</updated><author><name>Yan YAN(闫妍)</name><uri>http://www.cnblogs.com/finehappy/</uri></author><link rel="alternate" href="http://www.cnblogs.com/finehappy/archive/2011/10/07/2200462.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/finehappy/archive/2011/10/07/2200462.html"/><content type="html">&lt;p&gt;&amp;nbsp; &lt;p&gt;源地址：&lt;a title="http://msdn.microsoft.com/zh-cn/library/system.servicemodel.syndication.syndicationfeed(v=VS.95).aspx" href="http://msdn.microsoft.com/zh-cn/library/system.servicemodel.syndication.syndicationfeed(v=VS.95).aspx"&gt;http://msdn.microsoft.com/zh-cn/library/system.servicemodel.syndication.syndicationfeed(v=VS.95).aspx&lt;/a&gt;  &lt;p&gt;&amp;nbsp;protected override void OnLoad(EventArgs e)&lt;br&gt;        {&lt;br&gt; &lt;br&gt;            SyndicationFeed feed = new SyndicationFeed("商户信息", "提供商户信息列表", new Uri("http://www.pumaboyd.com/feed"));&lt;br&gt; &lt;br&gt;            Collection&amp;lt;SyndicationItem&amp;gt; items = new Collection&amp;lt;SyndicationItem&amp;gt;();&lt;br&gt; &lt;br&gt;            foreach (var shop in RssData.GetShops())&lt;br&gt;            {&lt;br&gt;                SyndicationItem item = new SyndicationItem();&lt;br&gt;                item.Title = new TextSyndicationContent(shop.ShopName + shop.BranchName);&lt;br&gt;                item.Content = new TextSyndicationContent(shop.Address);&lt;br&gt;                item.Summary = new TextSyndicationContent(shop.Address);&lt;br&gt;                item.Links.Add(new SyndicationLink(new Uri("http://www.pumaboyd.com/shop/" + shop.ShopID)));&lt;br&gt;                item.Authors.Add(new SyndicationPerson("pumaboyd@163.com",shop.AddUser,"http://www.pumaboyd.com"));&lt;br&gt;                item.PublishDate = shop.AddTime;&lt;br&gt;                item.Id = "http://www.pumaboyd.com/shop/" + shop.ShopID;&lt;br&gt;                items.Add(item);&lt;br&gt;            }&lt;br&gt; &lt;br&gt;            feed.Items = items;&lt;br&gt; &lt;br&gt; &lt;br&gt;            Response.ContentType = "application/rss+xml";&lt;br&gt;            var output = new StringWriter();&lt;br&gt;            var writer = new XmlTextWriter(output);&lt;br&gt;            feed.SaveAsRss20(writer);&lt;br&gt;            Response.Write(output.ToString());&lt;br&gt; &lt;br&gt;        }&amp;nbsp; 读入 ：&amp;nbsp;&amp;nbsp;&lt;ol&gt;&lt;li&gt;WebClient webClient = new WebClient(); &lt;li&gt;&lt;li&gt;//注册webClient读取完成事件 &lt;li&gt;webClient.OpenReadCompleted += delegate(object sender, OpenReadCompletedEventArgs e) &lt;li&gt;{ &lt;li&gt;try&lt;li&gt;{ &lt;li&gt;&lt;li&gt;if (e.Error != null) &lt;li&gt;{ &lt;li&gt;if (onError != null) &lt;li&gt;{ &lt;li&gt;onError(e.Error); &lt;li&gt;} &lt;li&gt;return; &lt;li&gt;} &lt;li&gt;&lt;li&gt;//将网络获取的信息转化成RSS实体类 &lt;li&gt;List&amp;lt;RssItem&amp;gt; rssItems = new List&amp;lt;RssItem&amp;gt;(); &lt;li&gt;Stream stream = e.Result; &lt;li&gt;XmlReader response = XmlReader.Create(stream); &lt;li&gt;SyndicationFeed feeds = SyndicationFeed.Load(response); &lt;li&gt;foreach (SyndicationItem f in feeds.Items) &lt;li&gt;{ &lt;li&gt;RssItem rssItem = new RssItem(f.Title.Text, f.Summary.Text, f.PublishDate.ToString(), f.Links[0].Uri.AbsoluteUri); &lt;li&gt;rssItems.Add(rssItem); &lt;li&gt;} &lt;/li&gt;&lt;li&gt;&lt;/li&gt;&lt;/ol&gt;源地址：&lt;a title="http://hi.baidu.com/wuyunju/blog/item/88e6dbdd445a813c5982dd88.html" href="http://hi.baidu.com/wuyunju/blog/item/88e6dbdd445a813c5982dd88.html"&gt;http://hi.baidu.com/wuyunju/blog/item/88e6dbdd445a813c5982dd88.html&lt;/a&gt;&lt;img src="http://www.cnblogs.com/finehappy/aggbug/2200462.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/finehappy/archive/2011/10/07/2200462.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/finehappy/archive/2011/09/29/2195493.html</id><title type="text">Windows Phone  Application Bar Icon 下载地址</title><summary type="text">C:\Program Files (x86)\Microsoft SDKs\Windows Phone 在7.0和7.1的文件夹下面都有icon的文件夹 Application Bar Icons for Windows Phone 7 Series</summary><published>2011-09-29T06:40:00Z</published><updated>2011-09-29T06:40:00Z</updated><author><name>Yan YAN(闫妍)</name><uri>http://www.cnblogs.com/finehappy/</uri></author><link rel="alternate" href="http://www.cnblogs.com/finehappy/archive/2011/09/29/2195493.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/finehappy/archive/2011/09/29/2195493.html"/><content type="html">&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;C:\Program Files (x86)\Microsoft SDKs\Windows Phone&lt;/p&gt;  &lt;p&gt;在7.0和7.1的文件夹下面都有icon的文件夹&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Application Bar Icons for Windows Phone 7 Series&lt;/p&gt;&lt;img src="http://www.cnblogs.com/finehappy/aggbug/2195493.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/finehappy/archive/2011/09/29/2195493.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/finehappy/archive/2011/09/29/2195359.html</id><title type="text">你的Windows Phone 手机还没有升级7.5吗？我有办法，亲身体验！</title><summary type="text">你的Windows Phone 手机还没有升级7.5吗？我有办法，亲身体验！ 北京时间昨天早上，微软全面开放WP 7.5 升级，也就是一直再说的芒果，可是周期为四周，这个就要看几率去期待什么时候会轮到你了了。 昨天在网上发现了一个小窍门可以激活你的升级，昨天晚上回家一试果然可以，分享给大家。 这个小窍门说起来有趣，简单总结就是 拔网线 点击Zune 更新按钮后的3/4 时间的时候拔掉网线，...</summary><published>2011-09-29T04:57:00Z</published><updated>2011-09-29T04:57:00Z</updated><author><name>Yan YAN(闫妍)</name><uri>http://www.cnblogs.com/finehappy/</uri></author><link rel="alternate" href="http://www.cnblogs.com/finehappy/archive/2011/09/29/2195359.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/finehappy/archive/2011/09/29/2195359.html"/><content type="html">&lt;p&gt;你的Windows Phone 手机还没有升级7.5吗？我有办法，亲身体验！&lt;/p&gt;  &lt;p&gt;北京时间昨天早上，微软全面开放WP 7.5 升级，也就是一直再说的芒果，可是周期为四周，这个就要看几率去期待什么时候会轮到你了了。&lt;/p&gt;  &lt;p&gt;昨天在网上发现了一个小窍门可以激活你的升级，昨天晚上回家一试果然可以，分享给大家。&lt;/p&gt;  &lt;p&gt;这个小窍门说起来有趣，简单总结就是 拔网线&lt;/p&gt;  &lt;p&gt;点击Zune 更新按钮后的3/4 时间的时候拔掉网线，等待30秒，就可以提示芒果升级了，如果第一次没有成功就再试一次，我也是第二次成功的！&lt;/p&gt;  &lt;p&gt;现在我的WP已经是官方升级的7.5 了，这个很重要哦，如果使用非官方的破解，我发现是无法使用APP Hub 注册的！这样你是无法真机调试的。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/finehappy/aggbug/2195359.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/finehappy/archive/2011/09/29/2195359.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/finehappy/archive/2011/09/29/2195342.html</id><title type="text">你还在因为把工作环境和没有做完的工作内容而每天把电脑背回家吗？如果你不想这样，有什么办法呢？</title><summary type="text">你还在因为把工作环境和没有做完的工作内容而每天把电脑背回家吗？如果你不想这样，有什么办法呢？ 其实办法是很多的，这里我只介绍一种我最常使用且使用了很多年的一个小技巧给大家分享。希望能够给大家减轻上下班负担，增加工作效率，提高生活质量。 前言： 很多同事习惯每天背着笔记本上下班，重重的笔记本背在肩上，还要过安检，挤公交，实在是很难受，如何能实时同步的将工作带回家呢。 我在刚上班的时候也是这样...</summary><published>2011-09-29T04:39:00Z</published><updated>2011-09-29T04:39:00Z</updated><author><name>Yan YAN(闫妍)</name><uri>http://www.cnblogs.com/finehappy/</uri></author><link rel="alternate" href="http://www.cnblogs.com/finehappy/archive/2011/09/29/2195342.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/finehappy/archive/2011/09/29/2195342.html"/><content type="html">&lt;p&gt;你还在因为把工作环境和没有做完的工作内容而每天把电脑背回家吗？如果你不想这样，有什么办法呢？&lt;/p&gt;  &lt;p&gt;其实办法是很多的，这里我只介绍一种我最常使用且使用了很多年的一个小技巧给大家分享。希望能够给大家减轻上下班负担，增加工作效率，提高生活质量。&lt;/p&gt;  &lt;p&gt;前言：&lt;/p&gt;  &lt;p&gt;很多同事习惯每天背着笔记本上下班，重重的笔记本背在肩上，还要过安检，挤公交，实在是很难受，如何能实时同步的将工作带回家呢。&lt;/p&gt;  &lt;p&gt;我在刚上班的时候也是这样每天背着电脑上下班的，可是就是没有把背电脑的力气花在找解决问题方法上面多一些。&lt;/p&gt;  &lt;p&gt;有一天我发现我不能再背了，因为我的肩膀出了问题，于是我开始找办法，我们每一位同事手中其实都有多台电脑，所需要的其实就是其中的数据和环境，怎么样可以实时同步工作资料呢，开始我使用SVN但这需要环境服务器支持。后来我找到了Windows Live。&lt;/p&gt;  &lt;p&gt;我想在苹果和谷歌的平台应该同样有这样的服务，但是我没有先发现他们，1是我对苹果产品方案了解的不多，2是谷歌的平台上我一直没有找到。如果哪位同事有更好的办法可以一起分享。&lt;/p&gt;  &lt;p&gt;内容：&lt;/p&gt;  &lt;p&gt;我的办法很简单，就是使用Windows Live Mesh ，这个组件是Windows Live 套件中的一员，我们可能最常使用Windows Live Messager 也就是我们常说的MSN聊天，对于他的存在一直都没有注意到，他是做什么的呢？&lt;/p&gt;  &lt;p&gt;他的作用就是通过Windows Live 帐号，注册家庭和工作中的多台设备与微软云存储，实现实时同步的一款软件，同时他支持远程桌面、文件同步、收藏夹同步及Office 环境同步等。&lt;/p&gt;  &lt;p&gt;这样，我将公司的工作目录指定同步，Mesh会实时的同步到微软云存储上面去无需干预操作，无论我是在路上使用WindowsPhone 手机，还是在家中打开没有做完的工作进行加班都不会有间断了。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/finehappy/aggbug/2195342.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/finehappy/archive/2011/09/29/2195342.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/finehappy/archive/2011/09/24/2189497.html</id><title type="text">解答： 刷DFT 版 Windows Phone 依然无法越狱安装程序的原因</title><summary type="text">有些朋友在论坛里面问为什么刷了老爷子的越狱ROM依然无法，通过PC安装程序XAP到手机呢？ 答案只用一幅图片告诉大家。论坛的朋友很多都要的是这幅图片 明白如何在DFT 版本的ROM下安装程序的环境需要什么了吗？ 上面还有一点无法展示给你的是手机不能够黑屏，要把手机的屏幕点亮， 还有一个就是很多XAP是安装不了的，比如在市场下来的XAP都是不行的（QQ，QQ空间等等），但是自...</summary><published>2011-09-24T07:25:00Z</published><updated>2011-09-24T07:25:00Z</updated><author><name>Yan YAN(闫妍)</name><uri>http://www.cnblogs.com/finehappy/</uri></author><link rel="alternate" href="http://www.cnblogs.com/finehappy/archive/2011/09/24/2189497.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/finehappy/archive/2011/09/24/2189497.html"/><content type="html">&lt;p&gt;有些朋友在论坛里面问为什么刷了老爷子的越狱ROM依然无法，通过PC安装程序XAP到手机呢？&lt;/p&gt;  &lt;p&gt;答案只用一幅图片告诉大家。论坛的朋友很多都要的是这幅图片&lt;/p&gt;  &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/TerryFeng/201109/201109241524288393.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="2011-09-24_151809" border="0" alt="2011-09-24_151809" src="http://images.cnblogs.com/cnblogs_com/TerryFeng/201109/201109241524366696.png" width="1176" height="624" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;明白如何在DFT 版本的ROM下安装程序的环境需要什么了吗？&lt;/p&gt;  &lt;p&gt;上面还有一点无法展示给你的是&lt;strong&gt;手机不能够黑屏&lt;/strong&gt;，要把手机的屏幕点亮，&lt;/p&gt;  &lt;p&gt;还有一个就是很多XAP是安装不了的，比如在市场下来的XAP都是不行的（QQ，QQ空间等等），但是自己开发的是可以的。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/finehappy/aggbug/2189497.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/finehappy/archive/2011/09/24/2189497.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/finehappy/archive/2011/09/24/2189406.html</id><title type="text">WP 编译的时候报错&amp;lsquo;Xap packaging failed&amp;rsquo;</title><summary type="text">查看是否有黄色叹号的，图片或者其他资源，将它修复再编译。</summary><published>2011-09-24T04:59:00Z</published><updated>2011-09-24T04:59:00Z</updated><author><name>Yan YAN(闫妍)</name><uri>http://www.cnblogs.com/finehappy/</uri></author><link rel="alternate" href="http://www.cnblogs.com/finehappy/archive/2011/09/24/2189406.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/finehappy/archive/2011/09/24/2189406.html"/><content type="html">&lt;p&gt;查看是否有黄色叹号的，图片或者其他资源，将它修复再编译。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/finehappy/aggbug/2189406.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/finehappy/archive/2011/09/24/2189406.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/finehappy/archive/2011/09/23/2186049.html</id><title type="text">XAML 属性设置Windows Phone笔记</title><summary type="text">图片地址： &lt;Image Name="imgBomb" Stretch="Fill" Width="100" Height="100" Source="/CrazyBomb;component/Images/SleepState.png" MouseLeftButtonDown="imgBomb_MouseLeftButtonDown" /&gt; 按钮背景： &lt;Button Name=...</summary><published>2011-09-23T04:16:00Z</published><updated>2011-09-23T04:16:00Z</updated><author><name>Yan YAN(闫妍)</name><uri>http://www.cnblogs.com/finehappy/</uri></author><link rel="alternate" href="http://www.cnblogs.com/finehappy/archive/2011/09/23/2186049.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/finehappy/archive/2011/09/23/2186049.html"/><content type="html">&lt;p&gt;图片地址：&lt;/p&gt;  &lt;p&gt;&amp;lt;Image Name=&amp;quot;imgBomb&amp;quot; Stretch=&amp;quot;Fill&amp;quot;&amp;#160; Width=&amp;quot;100&amp;quot; Height=&amp;quot;100&amp;quot;&amp;#160; &lt;strong&gt;Source=&amp;quot;/CrazyBomb;component/Images/SleepState.png&amp;quot;&lt;/strong&gt; MouseLeftButtonDown=&amp;quot;imgBomb_MouseLeftButtonDown&amp;quot; /&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;按钮背景：&lt;/p&gt;  &lt;p&gt;&amp;lt;Button Name=&amp;quot;btnOverGame&amp;quot; Click=&amp;quot;btnOverGame_Click&amp;quot; Width=&amp;quot;100&amp;quot; Height=&amp;quot;100&amp;quot; Visibility=&amp;quot;Collapsed&amp;quot;&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Button.Background&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ImageBrush ImageSource=&amp;quot;/CrazyBomb;component/Images/OverIcon.jpg&amp;quot; /&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/Button.Background&amp;gt;     &lt;br /&gt;&amp;lt;/Button&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;WP弹出提示框是一样的。&lt;/p&gt;  &lt;p&gt;string scoreMessage = string.Format(&amp;quot;Your Score : {0} !&amp;quot;, GetScore());    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; MessageBox.Show(scoreMessage, &amp;quot;GameOver&amp;quot;, MessageBoxButton.OK);&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;也可以使用匿名方法&lt;/p&gt;  &lt;p&gt;btnSettingItem.Click += delegate(object o, RoutedEventArgs e)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; { MessageBox.Show(&amp;quot;SettingItem is Clicked!&amp;quot;, &amp;quot;Click&amp;quot;, MessageBoxButton.OK); };&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;修改启动页面&lt;/p&gt;  &lt;p&gt;WMAppManifest.xml 文件的&lt;/p&gt;  &lt;p&gt;&amp;lt;Tasks&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;DefaultTask Name=&amp;quot;_default&amp;quot; NavigationPage=&amp;quot;MainPage.xaml&amp;quot; /&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/Tasks&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;快捷方式标题名字&lt;/p&gt;  &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/TerryFeng/201109/201109231614566455.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/TerryFeng/201109/201109231614576847.png" width="319" height="65" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;WMAppManifest.xml 文件的&lt;/p&gt;  &lt;p&gt;&amp;#160; &amp;lt;App xmlns=&amp;quot;&amp;quot; ProductID=&amp;quot;{689bb09d-e38a-4ce7-bbf8-7e4080ee0db8}&amp;quot; Title=&amp;quot;wp7SaveImage背景设置&amp;quot;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;页面导航&lt;/p&gt;  &lt;p&gt;NavigationService.Navigate(new Uri(&amp;quot;/Page1.xaml&amp;quot;, UriKind.Relative));&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;应用程序栏&lt;/p&gt;  &lt;p&gt;&amp;lt;phone:PhoneApplicationPage.ApplicationBar&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;shell:ApplicationBar&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;shell:ApplicationBarIconButton IconUri=&amp;quot;/icons/appbar.check.rest.png&amp;quot; Text=&amp;quot;OK&amp;quot;/&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;shell:ApplicationBarIconButton IconUri=&amp;quot;/icons/appbar.cancel.rest.png&amp;quot; Text=&amp;quot;Cancel&amp;quot;/&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/shell:ApplicationBar&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/phone:PhoneApplicationPage.ApplicationBar&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;属性值加×&lt;/p&gt;  &lt;p&gt;纯数字代表固定高度（像素），数字加×代表按比例分配，即在固定值分配完成了后，按比例分配，如：10×、100、20×、30× ，会先分配固定值100，然后按10：20：30的比例分配高度或者是宽度。&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;匿名方法现在可以省略到如下程度了。&lt;/p&gt;  &lt;p&gt;if (null==_timer)   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; _timer = new DispatcherTimer();    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; _timer.Interval = TimeSpan.FromSeconds(2);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; _timer.Tick += (sender, e) =&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Index++;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (Index==AdvWords.Length)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Index = 0;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; _mangoIndicator.Text = AdvWords[Index];    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; };    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; _timer.Start();    &lt;/p&gt;&lt;img src="http://www.cnblogs.com/finehappy/aggbug/2186049.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/finehappy/archive/2011/09/23/2186049.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/finehappy/archive/2011/09/22/2185390.html</id><title type="text">收藏转载：Windows Phone 代码混淆</title><summary type="text">前言 自从 .Net framework 推出之后，受到广泛的使用与欢迎；而相信您也听过 Native Code 与 Managed Code；执行在 .Net CLR 环境下的应用程序都是属于 Managed Code 的范围，而 Managed Code 在编译时会先编译成 MSIL (Microsoft Intermediate Language)，实际执行时交由 JIT (Just-In...</summary><published>2011-09-22T10:17:00Z</published><updated>2011-09-22T10:17:00Z</updated><author><name>Yan YAN(闫妍)</name><uri>http://www.cnblogs.com/finehappy/</uri></author><link rel="alternate" href="http://www.cnblogs.com/finehappy/archive/2011/09/22/2185390.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/finehappy/archive/2011/09/22/2185390.html"/><content type="html">&lt;p&gt;前言&lt;/p&gt;  &lt;p&gt;自从 .Net framework 推出之后，受到广泛的使用与欢迎；而相信您也听过 Native Code 与 Managed Code；执行在 .Net CLR 环境下的应用程序都是属于 Managed Code 的范围，而 Managed Code 在编译时会先编译成 MSIL (Microsoft Intermediate Language)，实际执行时交由 JIT (Just-In-Time) 编译成机器码之后执行，而由于架构上的变更，MSIL (也就是我们的 .Net exe、dll 档案等) 是比较容易被解译的，因此便出现了混淆器，用来降低解译后程序代码的可读性、混淆流程、变量重新命名等，藉此来保护我们的应用程序；本篇主要将介绍如何利用混淆器来保护您的 Windows Phone 7 应用程序。&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;img title="" alt="" src="http://i.msdn.microsoft.com/ee904170.bullet_title(zh-tw,MSDN.10).gif" /&gt; 议程&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;取得软件 &lt;/li&gt;    &lt;li&gt;为什么要使用混淆器 &lt;/li&gt;    &lt;li&gt;开始使用 &lt;/li&gt;    &lt;li&gt;测试经过混淆器产生的应用程序&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;&lt;img title="" alt="" src="http://i.msdn.microsoft.com/ee904170.bullet_title(zh-tw,MSDN.10).gif" /&gt; 取得软件&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;首先，要保护我们的应用程序必须要先取得软件；而 PreEmptive Solutions 与微软合作，推出了免费的版本让您可以保护您的 WP7 应用程序，那要怎么取得呢？首先到申请的位置&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.preemptive.com/windowsphone7.html"&gt;http://www.preemptive.com/windowsphone7.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;之后您会在右边看到 REQUEST DOWNLOAD 的按钮，像是下图这样&lt;/p&gt;  &lt;p&gt;&lt;img title="" alt="" align="bottom" src="http://i.msdn.microsoft.com/gg491391.windowsphone15_01(zh-tw,MSDN.10).png" /&gt;&lt;/p&gt;  &lt;p&gt;点击之后会带到申请的页面，这个地方是要输入您的个人资料，大致上会像下图&lt;/p&gt;  &lt;p&gt;&lt;img title="" alt="" align="bottom" src="http://i.msdn.microsoft.com/gg491391.windowsphone15_02(zh-tw,MSDN.10).png" /&gt;&lt;/p&gt;  &lt;p&gt;在这边要特别注意，您软件的序号以及软件下载位置会经由 email 寄送到您的个人信箱中，因此 email 字段填写时要特别留意正确性；而附注字段的地方记得要填上 WP7，表示您要申请用于 Windows Phone 7 应用程序的用途上。&lt;/p&gt;  &lt;p&gt;数据填写完成送出后，大约一个工作天的时间，您就会收到一封 email，内含软件的下载位置以及安装序号，内容大致上会像下图&lt;/p&gt;  &lt;p&gt;&lt;img title="" alt="" align="bottom" src="http://i.msdn.microsoft.com/gg491391.windowsphone15_03(zh-tw,MSDN.10).png" /&gt;&lt;/p&gt;  &lt;p&gt;接下来您就可以下载软件并进行安装了；而如果您有想要使用 Intelligence 的相关功能，您可以回复这封邮件，并且将您安装后的软件序号提供给他，之后会再回复给你启动 Intelligence 的序号，而软件的序号在安装后可以在『Help\About』的画面中看到&lt;/p&gt;  &lt;p&gt;&lt;img title="" alt="" align="bottom" src="http://i.msdn.microsoft.com/gg491391.windowsphone15_04(zh-tw,MSDN.10).png" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;img title="" alt="" src="http://i.msdn.microsoft.com/ee904170.bullet_title(zh-tw,MSDN.10).gif" /&gt; 为什么要使用混淆器&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;您可能会有疑问，为什么要使用混淆器？或者还不清楚混淆器的功能以及主要作用，下面笔者简单的用例子的方式来说明；例如以先前笔者的 BurshDemo 的范例程序来看，在 btnRadialGradient 按钮按下的源代码是下面这样&lt;/p&gt;  &lt;p&gt;&lt;img title="" alt="" align="bottom" src="http://i.msdn.microsoft.com/gg491391.windowsphone15_05(zh-tw,MSDN.10).png" /&gt;&lt;/p&gt;  &lt;p&gt;而在没有经过混淆器编译过的程序代码档案 (exe 或是 dll)，在反组译之后呈现出来的结果会像是这样子&lt;/p&gt;  &lt;p&gt;&lt;img title="" alt="" align="bottom" src="http://i.msdn.microsoft.com/gg491391.windowsphone15_06(zh-tw,MSDN.10).png" /&gt;&lt;/p&gt;  &lt;p&gt;你会发现，几乎是完完整整的呈现出来了，而且过程是相当的简单；因此就必须要藉由混淆器来让这件事件变得困难，这也是混淆器存在的目的了。&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;img title="" alt="" src="http://i.msdn.microsoft.com/ee904170.bullet_title(zh-tw,MSDN.10).gif" /&gt; 开始使用&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;软件的安装过程相当的简单，笔者这边就不再赘述了；安装完毕之后，您会在菜单中看到如下的项目&lt;/p&gt;  &lt;p&gt;&lt;img title="" alt="" align="bottom" src="http://i.msdn.microsoft.com/gg491391.windowsphone15_07(zh-tw,MSDN.10).png" /&gt;&lt;/p&gt;  &lt;p&gt;其中 PDF 的档案 (Userguide) 是说明文件，另一个就是我们要使用的主程序了；执行之后第一个画面会看开启就项目或是建立新项目的画面&lt;/p&gt;  &lt;p&gt;&lt;img title="" alt="" align="bottom" src="http://i.msdn.microsoft.com/gg491391.windowsphone15_08(zh-tw,MSDN.10).png" /&gt;&lt;/p&gt;  &lt;p&gt;在这个画面中，是选择要建立新的项目或是开启之前使用过的项目，这是由于在 Dotfuscator 中有相当多的设定可以让你去做设定以及调整，项目是用来储存这些相关的设定以及对应的 Visual Studio 项目。&lt;/p&gt;  &lt;p&gt;接下来要设定一下使用组件的参考位置，这个设定是位于 Setting 的页面中，加入的方式可以参考下图；这边设定参考组件的位置是让 Dotfuscator 能够分析程序代码中的型别、使用到的组件以及其他相关的信息&lt;/p&gt;  &lt;p&gt;&lt;img title="" alt="" align="bottom" src="http://i.msdn.microsoft.com/gg491391.windowsphone15_09(zh-tw,MSDN.10).png" /&gt;&lt;/p&gt;  &lt;p&gt;而要加入的组件参考位置依照操作系统会有一些分别，会位于&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;x64      &lt;p&gt;&lt;strong&gt;&lt;em&gt;C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\Silverlight\v4.0\Profile\WindowsPhone&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;x86      &lt;p&gt;&lt;strong&gt;&lt;em&gt;C:\Program Files\Reference Assemblies\Microsoft\Framework\Silverlight\v4.0\Profile\WindowsPhone&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;加入之后，第二个步骤是加入要混淆的项目，这个设定是位于 Input 页面中，例如下图&lt;/p&gt;  &lt;p&gt;&lt;img title="" alt="" align="bottom" src="http://i.msdn.microsoft.com/gg491391.windowsphone15_10(zh-tw,MSDN.10).png" /&gt;&lt;/p&gt;  &lt;p&gt;这个地方就可以指定你编译后产生的 xap 档案，指定好了之后，接下来便是其他的设定项目了；先回到 Setting 的页面中，首先先来看看经过混淆器编译后的档案会放置在什么地方呢？这个在 Build Setting 中可以去做设定，例如笔者这边是设定成 D:\WP7 的目录，而在&lt;strong&gt;这个部分原始的设定是『${configdir}\Dotfuscated』您也可以保留这样的设定，这个设定的意思是经过混淆器编译后的档案会跟您的 xml 配置文件放在相同的位置&lt;/strong&gt;，这部分可以依照您的喜好下去做设定。&lt;/p&gt;  &lt;p&gt;&lt;img title="" alt="" align="bottom" src="http://i.msdn.microsoft.com/gg491391.windowsphone15_11(zh-tw,MSDN.10).png" /&gt;&lt;/p&gt;  &lt;p&gt;到这边为止，就已经完成了基本的环境设定了，接下来需要再调整一些设定；这些设定位在 Global Options 这个项目中，在 Global Option 中可以设定 Dotfuscator 各功能是开启或关闭，而在这边，我们将重新命名 (Renaming) 以及 Control Flow 的项目给关闭起来 (依照预设的设定，这两个项目是开启的)，例如下图这样&lt;/p&gt;  &lt;p&gt;&lt;img title="" alt="" align="bottom" src="http://i.msdn.microsoft.com/gg491391.windowsphone15_12(zh-tw,MSDN.10).png" /&gt;&lt;/p&gt;  &lt;p&gt;那么为什么要关闭 Renaming 项目的功能呢？这是因为在应用程序中，可能会自定义类别来储存各种数据使用，例如说建立了 Book 的类别，而其中可能会有标题、出版日期等属性存在，大概像这样子&lt;/p&gt;  &lt;code&gt;public string Title&lt;br/&gt;        {&lt;br/&gt;            get { return _title; }&lt;br/&gt;            set { _title = value; }&lt;br/&gt;        }&lt;br/&gt;        public string PubDate&lt;br/&gt;        {&lt;br/&gt;            get { return _pubdate; }&lt;br/&gt;            set { _pubdate = value; }&lt;br/&gt;        }&lt;/code&gt;&lt;p&gt;而在 XAML 的地方，利用了数据系结的功能去做显示，例如&lt;/p&gt;&lt;code&gt;&lt;ol&gt;&lt;li&gt;&amp;lt;TextBlock VerticalAlignment=&amp;quot;Center&amp;quot; Grid.Column=&amp;quot;1&amp;quot; Margin=&amp;quot;5,0,0,0&amp;quot; Grid.Row=&amp;quot;1&amp;quot; FontSize=&amp;quot;32&amp;quot; TextWrapping=&amp;quot;Wrap&amp;quot; Text=&amp;quot;{Binding Path=Title}&amp;quot;/&amp;gt;&lt;li&gt; &lt;li&gt;    &amp;lt;TextBlock VerticalAlignment=&amp;quot;Center&amp;quot; Grid.Column=&amp;quot;1&amp;quot; Margin=&amp;quot;5,0,0,0&amp;quot; Grid.Row=&amp;quot;1&amp;quot; FontSize=&amp;quot;32&amp;quot; TextWrapping=&amp;quot;Wrap&amp;quot; Text=&amp;quot;{Binding Path=PubDate}&amp;quot;/&amp;gt;&lt;/li&gt;&lt;/ol&gt;&lt;/code&gt;&lt;p&gt;而混淆器中 Renaming 的功能会将各变量、方法等作重新命名，而之间可能会发生对应不到的情形，因此会造成应用程序的错误发生，这部分要特别的留意一下。&lt;/p&gt;&lt;p&gt;而 Control Flow 的部分是会在程序代码中加入一些混淆程序流程以及架构的程序代码，而在现阶段我们也不希望 Dotfuscator 这么做，因此也设定为关闭。&lt;/p&gt;&lt;p&gt;设定完成之后，就可以按下 Build Project 的按钮来建立项目了，按钮的位置可以参考下图&lt;/p&gt;&lt;p&gt;&lt;img title="" alt="" align="bottom" src="http://i.msdn.microsoft.com/gg491391.windowsphone15_13(zh-tw,MSDN.10).png" /&gt;&lt;/p&gt;&lt;p&gt;建置之后没有意外的话会在下方的说明窗口中出现完成的讯息，例如下图&lt;/p&gt;&lt;p&gt;&lt;img title="" alt="" align="bottom" src="http://i.msdn.microsoft.com/gg491391.windowsphone15_14(zh-tw,MSDN.10).png" /&gt;&lt;/p&gt;&lt;p&gt;而之后就会在您指定的位置产生一个新的 xap 档案了；那么经过混淆器编译之后有甚么不同呢？同样的来看看先前的按钮事件有甚么不同&lt;/p&gt;&lt;p&gt;&lt;img title="" alt="" align="bottom" src="http://i.msdn.microsoft.com/gg491391.windowsphone15_15(zh-tw,MSDN.10).png" /&gt;&lt;/p&gt;&lt;p&gt;您可以看出程序代码的部分不会直接的被看出来了，太棒了不是吗；只要经过简单的几个步骤之后，就能够保护我们的应用程序了。这也是最简单的设定方式，那如果想要用到一些其他设定的功能呢？笔者再简单的介绍一下，这边以字符串加密的部分来作为范例；例如说在 Book 类别中宣告了一个字符串变量，大概像下面这样&lt;/p&gt;&lt;code&gt;namespace DotobfuscatorDemo&lt;br/&gt;{&lt;br/&gt;    public class Book&lt;br/&gt;    {&lt;br/&gt;        public string Title { get; set; }&lt;br/&gt;        public string PubDate { get; set; }&lt;br/&gt;        public string Author { get; set; }&lt;br/&gt;&lt;br/&gt;        public string temp;&lt;br/&gt;&lt;br/&gt;        public Book()&lt;br/&gt;        {&lt;br/&gt;            temp = &amp;quot;12345&amp;quot;;&lt;br/&gt;        }&lt;br/&gt;    }&lt;br/&gt;}&lt;/code&gt;&lt;p&gt;而在没有经过混淆器编译的情形下，反组译后的结果会像是这样&lt;/p&gt;&lt;p&gt;&lt;img title="" alt="" align="bottom" src="http://i.msdn.microsoft.com/gg491391.windowsphone15_16(zh-tw,MSDN.10).png" /&gt;&lt;/p&gt;&lt;p&gt;字符串会直接的显示出来，而这时候如果不想让字符串以这么明显的方式被看出来的话，就可以利用混淆器来做加密，那要怎么做呢？首先要在设定中把字符串加密的部分给启用&lt;/p&gt;&lt;p&gt;&lt;img title="" alt="" align="bottom" src="http://i.msdn.microsoft.com/gg491391.windowsphone15_17(zh-tw,MSDN.10).png" /&gt;&lt;/p&gt;&lt;p&gt;之后设定受影响的范围，这边笔者只设定了 Book 类别，例如下面这样&lt;/p&gt;&lt;p&gt;&lt;img title="" alt="" align="bottom" src="http://i.msdn.microsoft.com/gg491391.windowsphone15_18(zh-tw,MSDN.10).png" /&gt;&lt;/p&gt;&lt;p&gt;接下来直接在混淆器中重新编译一次 xap 档案就可以了，那么新产生的 xap 如果经过反组译会是什么样子呢？&lt;/p&gt;&lt;p&gt;&lt;img title="" alt="" align="bottom" src="http://i.msdn.microsoft.com/gg491391.windowsphone15_19(zh-tw,MSDN.10).png" /&gt;&lt;/p&gt;&lt;p&gt;您可以看到字符串部分不会直接被显示出来，而且另外套用了一个名为『b』的 function，『b』的内容是&lt;/p&gt;&lt;p&gt;&lt;img title="" alt="" align="bottom" src="http://i.msdn.microsoft.com/gg491391.windowsphone15_20(zh-tw,MSDN.10).png" /&gt;&lt;/p&gt;&lt;p&gt;这样就可以保护您的字符串不会那么轻易的就被看出来了，混淆器会使这个动作变得复杂、以及不容易了解，但同时也会牺牲一些效能就是了。您可以参考 Userguide 的使用说明来了解其他的设定部分。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;img title="" alt="" src="http://i.msdn.microsoft.com/ee904170.bullet_title(zh-tw,MSDN.10).gif" /&gt; 测试经过混淆器产生的应用程序&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;那么经过混淆器产生的 xap 档案应该要如何测试呢？我们可以利用部属工具直接将档案部属到仿真器或是装置上下去做测试，工具的位置可以在菜单中看到像是如下的画面&lt;/p&gt;&lt;p&gt;&lt;img title="" alt="" align="bottom" src="http://i.msdn.microsoft.com/gg491391.windowsphone15_21(zh-tw,MSDN.10).png" /&gt;&lt;/p&gt;&lt;p&gt;执行之后会看到如下的接口&lt;/p&gt;&lt;p&gt;&lt;img title="" alt="" align="bottom" src="http://i.msdn.microsoft.com/gg491391.windowsphone15_22(zh-tw,MSDN.10).png" /&gt;&lt;/p&gt;&lt;p&gt;透过这个工具就可以进行部属的动作，而部属成功之后，您就可以在装置上或是仿真器上面测试您的应用程序了&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;img title="" alt="" src="http://i.msdn.microsoft.com/ee904170.bullet_title(zh-tw,MSDN.10).gif" /&gt; 结语&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;混淆器主要是会让解读 (反组译) 的动作变得困难，进而有效的帮助我们来保护应用程序，但也并非万灵丹，不将敏感性的数据直接写在程序代码中，适当的采用加密的方式来保存数据也是必须的；而使用混淆器进行编译之后很重要的一点，&lt;strong&gt;一定要再经过一次完整的测试&lt;/strong&gt;，因为经过混淆器编译之后，根据设定的不同，是会去改变一些程序的逻辑或是数据，难保是不是会造成某些功能的运作不正常，切记一定要再验证过程序的正确性才行。&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;源地址：&lt;a title="http://msdn.microsoft.com/zh-cn/windowsphone/gg491391.aspx" href="http://msdn.microsoft.com/zh-cn/windowsphone/gg491391.aspx"&gt;http://msdn.microsoft.com/zh-cn/windowsphone/gg491391.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/finehappy/aggbug/2185390.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/finehappy/archive/2011/09/22/2185390.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/finehappy/archive/2011/09/20/2182387.html</id><title type="text">转载：Windows Phone 越狱 防锁 升级芒果 教程</title><summary type="text">越狱操作系统必须是Windows 7 （Windows7 很好）http://www.wpxap.com/thread-138862-1-1.htmlhttp://www.wpxap.com/thread-102761-1-1.htmlhttp://www.wpxap.com/thread-44308-1-1.html</summary><published>2011-09-20T05:49:00Z</published><updated>2011-09-20T05:49:00Z</updated><author><name>Yan YAN(闫妍)</name><uri>http://www.cnblogs.com/finehappy/</uri></author><link rel="alternate" href="http://www.cnblogs.com/finehappy/archive/2011/09/20/2182387.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/finehappy/archive/2011/09/20/2182387.html"/><content type="html">&lt;p&gt;越狱操作系统必须是Windows 7 （Windows7 很好）&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a title="http://www.wpxap.com/thread-138862-1-1.html" href="http://www.wpxap.com/thread-138862-1-1.html"&gt;http://www.wpxap.com/thread-138862-1-1.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a title="http://www.wpxap.com/thread-102761-1-1.html" href="http://www.wpxap.com/thread-102761-1-1.html"&gt;http://www.wpxap.com/thread-102761-1-1.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.wpxap.com/thread-44308-1-1.html"&gt;http://www.wpxap.com/thread-44308-1-1.html&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/finehappy/aggbug/2182387.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/finehappy/archive/2011/09/20/2182387.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/finehappy/archive/2011/09/14/2176169.html</id><title type="text">Asp.Net MVC 3 与 HTML 5</title><summary type="text">环境安装： http://www.microsoft.com/web/gallery/install.aspx?appid=MVC3 Visual Studio 2010 SP1</summary><published>2011-09-14T06:35:00Z</published><updated>2011-09-14T06:35:00Z</updated><author><name>Yan YAN(闫妍)</name><uri>http://www.cnblogs.com/finehappy/</uri></author><link rel="alternate" href="http://www.cnblogs.com/finehappy/archive/2011/09/14/2176169.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/finehappy/archive/2011/09/14/2176169.html"/><content type="html">&lt;p&gt;环境安装：&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.microsoft.com/web/gallery/install.aspx?appid=MVC3" href="http://www.microsoft.com/web/gallery/install.aspx?appid=MVC3"&gt;http://www.microsoft.com/web/gallery/install.aspx?appid=MVC3&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Visual Studio 2010 SP1&lt;/p&gt;&lt;img src="http://www.cnblogs.com/finehappy/aggbug/2176169.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/finehappy/archive/2011/09/14/2176169.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
