<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>简单生活 -- Kevin Yang的博客 &#187; RTM</title>
	<atom:link href="http://www.imkevinyang.com/tags/rtm/feed" rel="self" type="application/rss+xml" />
	<link>http://www.imkevinyang.com</link>
	<description>It&#039;s all about sharing</description>
	<lastBuildDate>Sun, 05 Feb 2012 15:37:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Silverlight2 动态加载程序集&#8212;OnDemand模式(Dynamic Load Assembly)</title>
		<link>http://www.imkevinyang.com/2009/03/silverlight2-%e5%8a%a8%e6%80%81%e5%8a%a0%e8%bd%bd%e7%a8%8b%e5%ba%8f%e9%9b%86-ondemand%e6%a8%a1%e5%bc%8fdynamic-load-assembly.html</link>
		<comments>http://www.imkevinyang.com/2009/03/silverlight2-%e5%8a%a8%e6%80%81%e5%8a%a0%e8%bd%bd%e7%a8%8b%e5%ba%8f%e9%9b%86-ondemand%e6%a8%a1%e5%bc%8fdynamic-load-assembly.html#comments</comments>
		<pubDate>Mon, 02 Mar 2009 17:44:00 +0000</pubDate>
		<dc:creator>Kevin Yang</dc:creator>
				<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[技术随笔]]></category>
		<category><![CDATA[OnDemand]]></category>
		<category><![CDATA[RTM]]></category>
		<category><![CDATA[Xap]]></category>
		<category><![CDATA[动态加载]]></category>
		<category><![CDATA[反射]]></category>
		<category><![CDATA[模式]]></category>
		<category><![CDATA[程序集]]></category>

		<guid isPermaLink="false">http://www.imkevinyang.com/?p=113</guid>
		<description><![CDATA[<p>随着我们开发的进行，我们的Silverlight生产出来的Xap包可能会越来越大，这个时候我们可能会考虑将某些功能集独立到某个程序集中，放置在SL可以访问的路径下，然后在需要的时候动态去加载这个程序集。关于这方面的例子网上也有不少，但大多是告诉你在下载dll之后通过反射来实例化类型。我们知道反射是一&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>随着我们开发的进行，我们的Silverlight生产出来的Xap包可能会越来越大，这个时候我们可能会考虑将某些功能集独立到某个程序集中，放置在SL可以访问的路径下，然后在需要的时候动态去加载这个程序集。关于这方面的例子网上也有不少，但大多是告诉你在下载dll之后通过反射来实例化类型。我们知道反射是一种比较慢的操作，对于这里我们使用的程序集，其实内部有什么类我们都是知道的，那么有没有一种办法可以即获得动态加载程序集的好处，又不用付出反射的代码呢？答案是有的。下面我通过一个简单的Demo来演示一下怎么实现。</p>
<p>首先还是如下图一样建立三个工程：</p>
<p><a href="http://www.imkevinyang.com/wp-content/uploads/2009/03/clip-image002.jpg"><img style="display: inline; border: 0px;" title="clip_image002" src="http://www.imkevinyang.com/wp-content/uploads/2009/03/clip-image002-thumb.jpg" border="0" alt="clip_image002" width="461" height="168" /></a></p>
<p>其中Extension是我们独立出来的程序集，需要动态加载的，里面我们只设置了一个非常简单的Ext类，这个Ext类只有一个静态的Encrypt方法，用来加密字符串的。下面两个工程分别是我们的主SL应用程序和测试网站。</p>
<p>我们的主SL程序非常简单，界面如下</p>
<p><a href="http://www.imkevinyang.com/wp-content/uploads/2009/03/clip-image004.jpg"><img style="display: inline; border: 0px;" title="clip_image004" src="http://www.imkevinyang.com/wp-content/uploads/2009/03/clip-image004-thumb.jpg" border="0" alt="clip_image004" width="282" height="29" /></a></p>
<p>输入一个任意字符串，然后点击加密就会调用Ext的静态加密方法，并弹出加密之后的字符串给用户。</p>
<p>好，让我们先按照传统的思路来做。</p>
<p>由于这个独立程序集是我们已知的，所以我们可以直接添加引用到主SL工程中。（这里为什么我要强调“已知”这个概念呢？因为只有对于我们未知的可能实现了某些契约了的程序集，我们一般会通过LoadAssembly的方法而不是直接添加引用的方式来加载）</p>
<p>在这里需要<strong>注意</strong>一点，当我们添加完引用之后，我们需要设置其CopyLocal的属性</p>
<p><a href="http://www.imkevinyang.com/wp-content/uploads/2009/03/clip-image006.jpg"><img style="display: inline; border: 0px;" title="clip_image006" src="http://www.imkevinyang.com/wp-content/uploads/2009/03/clip-image006-thumb.jpg" border="0" alt="clip_image006" width="436" height="58" /></a></p>
<p>这样该dll不会被自动打包到Xap包中，否则就没意义了。</p>
<p>OK，到现在为止，我们所做的都是一些标准的DotNet特性的东西。接下来的部分比较有意思了。</p>
<p>我们绑定加密按钮的Click事件，并在处理函数里面加入如下代码：</p>
<p><a href="http://www.imkevinyang.com/wp-content/uploads/2009/03/clip-image008.jpg"><img style="display: inline; border: 0px;" title="clip_image008" src="http://www.imkevinyang.com/wp-content/uploads/2009/03/clip-image008-thumb.jpg" border="0" alt="clip_image008" width="566" height="459" /></a></p>
<p>我们定义了一个标识变量_assemblyLoaded来指示当前使用的加密程序集是否已经成功加载了。如果是的话，则直接执行ShowEncryptedText。否则我们加载程序集。为了在加载之后能够自动继续执行一致的逻辑，在这里我使用了后台线程对象BackgroundWorker，不断轮询程序集是否成功加载了，直到加载成功为止。然后我们通过UserControl的Dispatcher对象来异步调用加密逻辑。<strong>这里如果直接调用ShowEncryptedText会抛出线程访问错误，原因不详</strong>。</p>
<p>我们先来看一下加载程序集的逻辑。</p>
<p><a href="http://www.imkevinyang.com/wp-content/uploads/2009/03/clip-image010.jpg"><img style="display: inline; border: 0px;" title="clip_image010" src="http://www.imkevinyang.com/wp-content/uploads/2009/03/clip-image010-thumb.jpg" border="0" alt="clip_image010" width="528" height="473" /></a></p>
<p>这段代码比较简单，不做太多解释。</p>
<p>我们再来看一下，我们的ShowEncryptedText函数的实现</p>
<p><a href="http://www.imkevinyang.com/wp-content/uploads/2009/03/clip-image012.jpg"><img style="display: inline; border: 0px;" title="clip_image012" src="http://www.imkevinyang.com/wp-content/uploads/2009/03/clip-image012-thumb.jpg" border="0" alt="clip_image012" width="645" height="179" /></a></p>
<p>很简洁的代码，我们仅仅使用MessageBox来显示加密过后的字符串。在这里Ext.Encrypt方法是来自我们刚刚加载成功的外部程序集。</p>
<p>这里有一个问题，为什么我们要把这么短的代码放到一个专门的函数里头呢？为什么不在OnEncrypt事件处理函数中就直接调用呢？这其实是先有鸡还是先有蛋的问题了(*^__^*) DotNet在进入一个方法的时候，会预先查找函数里面使用到的所有方法所在的程序集，因此如果我们直接调用Ext的方法，那么，啊，哈，我不说你也知道了吧。（这个特性在Javascript中也有，JS在执行到一个函数时，会预先找出函数内使用的所有变量，所以不论你在函数内部哪个地方声明的变量，都是一样的效果）</p>
<p>也就是因为上面这个原因，所以在方法上面要加上NoInlining编译属性，是为了防止编译器自作聪明把短函数内联了导致异常。</p>
<p>希望此文能帮到你~</p>
<p>——<em><a href="http://www.imkevinyang.com/2009/03/silverlight2-%E5%8A%A8%E6%80%81%E5%8A%A0%E8%BD%BD%E7%A8%8B%E5%BA%8F%E9%9B%86-ondemand%E6%A8%A1%E5%BC%8Fdynamic-load-assembly.html" target="_self">Kevin Yang</a></em></p>

	标签：<a href="http://www.imkevinyang.com/tags/ondemand" title="OnDemand" rel="tag">OnDemand</a>, <a href="http://www.imkevinyang.com/tags/rtm" title="RTM" rel="tag">RTM</a>, <a href="http://www.imkevinyang.com/categories/techarticles/silverlight" title="Silverlight" rel="tag">Silverlight</a>, <a href="http://www.imkevinyang.com/tags/silverlight" title="Silverlight" rel="tag">Silverlight</a>, <a href="http://www.imkevinyang.com/tags/xap" title="Xap" rel="tag">Xap</a>, <a href="http://www.imkevinyang.com/tags/%e5%8a%a8%e6%80%81%e5%8a%a0%e8%bd%bd" title="动态加载" rel="tag">动态加载</a>, <a href="http://www.imkevinyang.com/tags/%e5%8f%8d%e5%b0%84" title="反射" rel="tag">反射</a>, <a href="http://www.imkevinyang.com/categories/techarticles" title="技术随笔" rel="tag">技术随笔</a>, <a href="http://www.imkevinyang.com/tags/%e6%a8%a1%e5%bc%8f" title="模式" rel="tag">模式</a>, <a href="http://www.imkevinyang.com/tags/%e7%a8%8b%e5%ba%8f%e9%9b%86" title="程序集" rel="tag">程序集</a><br />

	<h4 style="background-color:#3B3B3B;border-bottom:2px groove gray;color:#F2F2F2;margin-top:20px;padding:6px 6px 6px 15px;margin:20px 0px 0px 0px">你可能对下面的文章感兴趣</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.imkevinyang.com/2009/09/blend%e5%b0%8f%e8%b4%b4%e5%a3%ab%e6%94%b9%e5%8f%98%e9%bc%a0%e6%a0%87%e6%bb%9a%e8%bd%ae%e7%9a%84%e9%bb%98%e8%ae%a4%e8%a1%8c%e4%b8%ba-2.html" title="Blend小贴士&mdash;&mdash;改变鼠标滚轮的默认行为 (2009/09/18)">Blend小贴士&mdash;&mdash;改变鼠标滚轮的默认行为</a> </li>
	<li><a href="http://www.imkevinyang.com/2009/02/silverlight-2-rtm-%e5%a4%9a%e5%9b%bd%e8%af%ad%e8%a8%80%e6%94%af%e6%8c%81%ef%bc%88%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e6%9c%ac%e5%9c%b0%e5%8c%96%ef%bc%89.html" title="Silverlight 2 RTM 多国语言支持（应用程序本地化） (2009/02/28)">Silverlight 2 RTM 多国语言支持（应用程序本地化）</a> </li>
	<li><a href="http://www.imkevinyang.com/2009/03/silverlight-2%e5%8a%a8%e6%80%81%e5%8a%a0%e8%bd%bdxap%e5%8c%85%e4%b8%ad%e7%9a%84%e7%a8%8b%e5%ba%8f%e9%9b%86.html" title="Silverlight 2动态加载Xap包中的程序集 (2009/03/02)">Silverlight 2动态加载Xap包中的程序集</a> </li>
	<li><a href="http://www.imkevinyang.com/2010/05/silverlight-4ria-services-%e6%90%9c%e7%b4%a2%e5%bc%95%e6%93%8e%e4%bc%98%e5%8c%96seo.html" title="Silverlight 4+RIA Services&#8211;搜索引擎优化(SEO) (2010/05/04)">Silverlight 4+RIA Services&#8211;搜索引擎优化(SEO)</a> </li>
	<li><a href="http://www.imkevinyang.com/2009/04/silverlight-seo%ef%bc%88%e6%90%9c%e7%b4%a2%e5%bc%95%e6%93%8e%e4%bc%98%e5%8c%96%ef%bc%89%e7%99%bd%e7%9a%ae%e4%b9%a6.html" title="Silverlight SEO（搜索引擎优化）白皮书 (2009/04/06)">Silverlight SEO（搜索引擎优化）白皮书</a> </li>
	<li><a href="http://www.imkevinyang.com/2011/09/silverlight%e4%b8%ad%e6%97%a0%e6%b3%95%e8%ae%be%e7%bd%ae%e5%8d%ab%e6%98%9f%e7%a8%8b%e5%ba%8f%e9%9b%86%e4%b8%ba%e4%b8%ad%e7%ab%8b%e8%b5%84%e6%ba%90%e7%a8%8b%e5%ba%8f%e9%9b%86.html" title="Silverlight中无法设置卫星程序集为中立资源程序集 (2011/09/05)">Silverlight中无法设置卫星程序集为中立资源程序集</a> </li>
	<li><a href="http://www.imkevinyang.com/2010/02/silverlight%e5%90%af%e7%94%a8assembly-caching%e4%b9%8b%e5%90%8e%e9%93%81%e9%80%9a%e7%94%a8%e6%88%b7%e6%97%a0%e6%b3%95%e8%ae%bf%e9%97%ae.html" title="Silverlight启用Assembly Caching之后铁通用户无法访问 (2010/02/13)">Silverlight启用Assembly Caching之后铁通用户无法访问</a> </li>
	<li><a href="http://www.imkevinyang.com/2010/03/silverlight%e7%9a%84%e4%be%9d%e8%b5%96%e5%b1%9e%e6%80%a7%e4%b8%8e%e9%99%84%e5%8a%a0%e5%b1%9e%e6%80%a7.html" title="Silverlight的依赖属性与附加属性 (2010/03/28)">Silverlight的依赖属性与附加属性</a> </li>
	<li><a href="http://www.imkevinyang.com/2010/09/%e4%bd%bf%e7%94%a8xamlreader-load%e6%9e%84%e5%bb%ba%e9%85%8d%e7%bd%ae%e5%9e%8b%e8%87%aa%e5%ae%9a%e4%b9%89%e6%8e%a7%e4%bb%b6.html" title="使用XamlReader.Load构建配置型自定义控件 (2010/09/03)">使用XamlReader.Load构建配置型自定义控件</a> </li>
	<li><a href="http://www.imkevinyang.com/2009/03/%e5%9b%be%e7%89%87%e7%ad%89%e8%b5%84%e6%ba%90%e7%9a%84%e5%bc%95%e7%94%a8%e8%b7%af%e5%be%84%e9%97%ae%e9%a2%98.html" title="图片等资源的引用路径问题 (2009/03/19)">图片等资源的引用路径问题</a> </li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.imkevinyang.com/2009/03/silverlight2-%e5%8a%a8%e6%80%81%e5%8a%a0%e8%bd%bd%e7%a8%8b%e5%ba%8f%e9%9b%86-ondemand%e6%a8%a1%e5%bc%8fdynamic-load-assembly.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Silverlight 2 RTM 多国语言支持（应用程序本地化）</title>
		<link>http://www.imkevinyang.com/2009/02/silverlight-2-rtm-%e5%a4%9a%e5%9b%bd%e8%af%ad%e8%a8%80%e6%94%af%e6%8c%81%ef%bc%88%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e6%9c%ac%e5%9c%b0%e5%8c%96%ef%bc%89.html</link>
		<comments>http://www.imkevinyang.com/2009/02/silverlight-2-rtm-%e5%a4%9a%e5%9b%bd%e8%af%ad%e8%a8%80%e6%94%af%e6%8c%81%ef%bc%88%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e6%9c%ac%e5%9c%b0%e5%8c%96%ef%bc%89.html#comments</comments>
		<pubDate>Sun, 01 Mar 2009 01:48:53 +0000</pubDate>
		<dc:creator>Kevin Yang</dc:creator>
				<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[技术随笔]]></category>
		<category><![CDATA[RTM]]></category>
		<category><![CDATA[多国语言]]></category>
		<category><![CDATA[本地化]]></category>

		<guid isPermaLink="false">http://www.imkevinyang.com/2009/02/silverlight-2-rtm-%e5%a4%9a%e5%9b%bd%e8%af%ad%e8%a8%80%e6%94%af%e6%8c%81%ef%bc%88%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e6%9c%ac%e5%9c%b0%e5%8c%96%ef%bc%89/</guid>
		<description><![CDATA[<p>让Silverlight应用支持多国语言</p>
<p>1. 新建一个示例SL工程和一个测试的Web站点</p>
<p></p>
<p>2. 在站点中复制系统自动生成的****TestPage.html，以语言代码（如zh-CN）作为文件名的一部分。</p>
<p>3. 在每个测试页面中的Object标签中添加语言参数culture和uiculture并设置相应的语言&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>让Silverlight应用支持多国语言</p>
<p>1. 新建一个示例SL工程和一个测试的Web站点</p>
<p><img style="display: inline; border: 0px;" title="image" src="http://www.imkevinyang.com/wp-content/uploads/2009/02/image-thumb15.png" border="0" alt="image" width="204" height="52" /></p>
<p>2. 在站点中复制系统自动生成的****TestPage.html，以语言代码（如zh-CN）作为文件名的一部分。<img style="display: inline; border: 0px;" title="image" src="http://www.imkevinyang.com/wp-content/uploads/2009/02/image-thumb16.png" border="0" alt="image" width="236" height="92" /></p>
<p>3. 在每个测试页面中的Object标签中添加语言参数culture和uiculture并设置相应的语言</p>
<p><img style="display: inline; border: 0px;" title="image" src="http://www.imkevinyang.com/wp-content/uploads/2009/02/image-thumb17.png" border="0" alt="image" width="488" height="173" /></p>
<p>4. 在SL工程中添加Resources文件夹（直接放置在根目录也是可以的，不过为了便于管理，单独出来这个文件夹）</p>
<p>5. 添加StringLibrary.resx资源文件，设置其访问权限为public，在其中添加Name字符串资源</p>
<p><img style="display: inline; border: 0px;" title="image" src="http://www.imkevinyang.com/wp-content/uploads/2009/02/image-thumb18.png" border="0" alt="image" width="524" height="93" /></p>
<p>6. 复制该文件，并分别重命名为相应语言的名字，并修改Name字符串资源的内容，然后将访问级别都设置为No Code Generation</p>
<p><img style="display: inline; border: 0px;" title="image" src="http://www.imkevinyang.com/wp-content/uploads/2009/02/image-thumb19.png" border="0" alt="image" width="370" height="216" /></p>
<p>7. VS帮我们自动生成的后台代码中StringLibrary构造函数的访问权限是internal，如果要在Xaml中</p>
<p>使用该资源实例，则此资源类必须是public的。因此我们手动修改StringLibrary.Designer.cs文件</p>
<p>将其构造函数访问级别设置为public（注意，这个文件在每次修改StringLibrary.resx后都会自动重新生成）。我们也可以不修改该文件，直接在代码中实例化一个StringLibrary对象（StringLibrary类是Dotnet帮我们自动生成的）并将其动态添加到相应的资源（App或者UserControl）中。</p>
<p><img style="display: inline; border: 0px;" title="image" src="http://www.imkevinyang.com/wp-content/uploads/2009/02/image-thumb20.png" border="0" alt="image" width="589" height="106" /></p>
<p>8. 在Page.xaml中定义资源实例</p>
<p><img style="display: inline; border: 0px;" title="image" src="http://www.imkevinyang.com/wp-content/uploads/2009/02/image-thumb21.png" border="0" alt="image" width="490" height="209" /></p>
<p>9. 在Xaml中使用该实例</p>
<p><img style="display: inline; border: 0px;" title="image" src="http://www.imkevinyang.com/wp-content/uploads/2009/02/image-thumb22.png" border="0" alt="image" width="596" height="66" /></p>
<p>10. 为了编译时能够将语言包打包到Xap包中去，我们需要设置一下工程文件：</p>
<p>A). 右键工程文件，选择Unload Project，然后再Edit Project。（或者你也可以直接在工程文件夹中直接修改.csproj文件）</p>
<p>B). 找到SupportedCultures这个节点，添加文本节点</p>
<p>&lt;SupportedCultures&gt;en-US,zh-CN,zh-TW&lt;/SupportedCultures&gt;</p>
<p>11. 编译整个工程，然后分别查看三个不同语言的测试页面</p>
<p>其他方面</p>
<p>1. 不需要通过在HTML页面中指定语言，而是在SL的App启动事件中动态改变当前线程的文化集</p>
<pre class="csharpcode"><span class="kwrd">private</span> <span class="kwrd">void</span> Application_Startup(<span class="kwrd">object</span> sender, StartupEventArgs e)
{
    CultureInfo culture = <span class="kwrd">new</span> CultureInfo(<span class="str">"en-US"</span>);
    Thread.CurrentThread.CurrentCulture = culture;
    Thread.CurrentThread.CurrentUICulture = culture;
    <span class="kwrd">this</span>.RootVisual = <span class="kwrd">new</span> Page();
}</pre>
<p><!-- .csharpcode, .csharpcode pre { 	font-size: small; 	color: black; 	font-family: consolas, "Courier New", courier, monospace; 	background-color: #ffffff; 	/*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt  { 	background-color: #f4f4f4; 	width: 100%; 	margin: 0em; } .csharpcode .lnum { color: #606060; } --> <!-- .csharpcode, .csharpcode pre { 	font-size: small; 	color: black; 	font-family: consolas, "Courier New", courier, monospace; 	background-color: #ffffff; 	/*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt  { 	background-color: #f4f4f4; 	width: 100%; 	margin: 0em; } .csharpcode .lnum { color: #606060; } -->这样即使你在html页面中设置了语言，也会被这里覆盖掉的</p>
<p>2. 当提供的特定语言的资源文件没有找着的时候，系统会查找相应的父级语言，如zh-CN的父级语言</p>
<p>是zh，en-US的父级语言是en（父级语言即地域无关的）。如果还没找到，则使用默认语言资源</p>
<p>3. 当不指定任何语言时，系统会查找用户操作系统使用的语言，自动加载相应的资源文件，如果找不着，</p>
<p>则回退到默认语言资源</p>
<p>4. 在AssemblyInfo中指定[assembly: NeutralResourcesLanguageAttribute("en")]属性的作用</p>
<p>尚未搞懂，貌似指定那种语言，那种语言就加载不成功，很怪异。有知道的人可以告知我一声~</p>
<p><span style="color: #ff0000;">update: NeutralResourcesLanguageAttribute的作用参考</span><a title="Silverlight中无法设置卫星程序集为中立资源程序集 " href="http://www.imkevinyang.com/2011/09/silverlight%e4%b8%ad%e6%97%a0%e6%b3%95%e8%ae%be%e7%bd%ae%e5%8d%ab%e6%98%9f%e7%a8%8b%e5%ba%8f%e9%9b%86%e4%b8%ba%e4%b8%ad%e7%ab%8b%e8%b5%84%e6%ba%90%e7%a8%8b%e5%ba%8f%e9%9b%86.html" target="_self">Silverlight中无法设置卫星程序集为中立资源程序集</a></p>

	标签：<a href="http://www.imkevinyang.com/tags/rtm" title="RTM" rel="tag">RTM</a>, <a href="http://www.imkevinyang.com/categories/techarticles/silverlight" title="Silverlight" rel="tag">Silverlight</a>, <a href="http://www.imkevinyang.com/tags/silverlight" title="Silverlight" rel="tag">Silverlight</a>, <a href="http://www.imkevinyang.com/tags/multiplelanguage" title="多国语言" rel="tag">多国语言</a>, <a href="http://www.imkevinyang.com/categories/techarticles" title="技术随笔" rel="tag">技术随笔</a>, <a href="http://www.imkevinyang.com/tags/%e6%9c%ac%e5%9c%b0%e5%8c%96" title="本地化" rel="tag">本地化</a><br />

	<h4 style="background-color:#3B3B3B;border-bottom:2px groove gray;color:#F2F2F2;margin-top:20px;padding:6px 6px 6px 15px;margin:20px 0px 0px 0px">你可能对下面的文章感兴趣</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.imkevinyang.com/2009/09/blend%e5%b0%8f%e8%b4%b4%e5%a3%ab%e6%94%b9%e5%8f%98%e9%bc%a0%e6%a0%87%e6%bb%9a%e8%bd%ae%e7%9a%84%e9%bb%98%e8%ae%a4%e8%a1%8c%e4%b8%ba-2.html" title="Blend小贴士&mdash;&mdash;改变鼠标滚轮的默认行为 (2009/09/18)">Blend小贴士&mdash;&mdash;改变鼠标滚轮的默认行为</a> </li>
	<li><a href="http://www.imkevinyang.com/2009/03/silverlight-2%e5%8a%a8%e6%80%81%e5%8a%a0%e8%bd%bdxap%e5%8c%85%e4%b8%ad%e7%9a%84%e7%a8%8b%e5%ba%8f%e9%9b%86.html" title="Silverlight 2动态加载Xap包中的程序集 (2009/03/02)">Silverlight 2动态加载Xap包中的程序集</a> </li>
	<li><a href="http://www.imkevinyang.com/2010/05/silverlight-4ria-services-%e6%90%9c%e7%b4%a2%e5%bc%95%e6%93%8e%e4%bc%98%e5%8c%96seo.html" title="Silverlight 4+RIA Services&#8211;搜索引擎优化(SEO) (2010/05/04)">Silverlight 4+RIA Services&#8211;搜索引擎优化(SEO)</a> </li>
	<li><a href="http://www.imkevinyang.com/2009/04/silverlight-seo%ef%bc%88%e6%90%9c%e7%b4%a2%e5%bc%95%e6%93%8e%e4%bc%98%e5%8c%96%ef%bc%89%e7%99%bd%e7%9a%ae%e4%b9%a6.html" title="Silverlight SEO（搜索引擎优化）白皮书 (2009/04/06)">Silverlight SEO（搜索引擎优化）白皮书</a> </li>
	<li><a href="http://www.imkevinyang.com/2009/03/silverlight2-%e5%8a%a8%e6%80%81%e5%8a%a0%e8%bd%bd%e7%a8%8b%e5%ba%8f%e9%9b%86-ondemand%e6%a8%a1%e5%bc%8fdynamic-load-assembly.html" title="Silverlight2 动态加载程序集&#8212;OnDemand模式(Dynamic Load Assembly) (2009/03/02)">Silverlight2 动态加载程序集&#8212;OnDemand模式(Dynamic Load Assembly)</a> </li>
	<li><a href="http://www.imkevinyang.com/2011/09/silverlight%e4%b8%ad%e6%97%a0%e6%b3%95%e8%ae%be%e7%bd%ae%e5%8d%ab%e6%98%9f%e7%a8%8b%e5%ba%8f%e9%9b%86%e4%b8%ba%e4%b8%ad%e7%ab%8b%e8%b5%84%e6%ba%90%e7%a8%8b%e5%ba%8f%e9%9b%86.html" title="Silverlight中无法设置卫星程序集为中立资源程序集 (2011/09/05)">Silverlight中无法设置卫星程序集为中立资源程序集</a> </li>
	<li><a href="http://www.imkevinyang.com/2010/02/silverlight%e5%90%af%e7%94%a8assembly-caching%e4%b9%8b%e5%90%8e%e9%93%81%e9%80%9a%e7%94%a8%e6%88%b7%e6%97%a0%e6%b3%95%e8%ae%bf%e9%97%ae.html" title="Silverlight启用Assembly Caching之后铁通用户无法访问 (2010/02/13)">Silverlight启用Assembly Caching之后铁通用户无法访问</a> </li>
	<li><a href="http://www.imkevinyang.com/2010/03/silverlight%e7%9a%84%e4%be%9d%e8%b5%96%e5%b1%9e%e6%80%a7%e4%b8%8e%e9%99%84%e5%8a%a0%e5%b1%9e%e6%80%a7.html" title="Silverlight的依赖属性与附加属性 (2010/03/28)">Silverlight的依赖属性与附加属性</a> </li>
	<li><a href="http://www.imkevinyang.com/2009/03/%e5%9b%be%e7%89%87%e7%ad%89%e8%b5%84%e6%ba%90%e7%9a%84%e5%bc%95%e7%94%a8%e8%b7%af%e5%be%84%e9%97%ae%e9%a2%98.html" title="图片等资源的引用路径问题 (2009/03/19)">图片等资源的引用路径问题</a> </li>
	<li><a href="http://www.imkevinyang.com/2009/02/%e5%9c%a8xaml%e4%b8%ad%e8%be%93%e5%85%a5%e5%b0%96%e6%8b%ac%e5%8f%b7%e6%96%87%e6%9c%ac.html" title="在Xaml中输入尖括号文本 (2009/02/28)">在Xaml中输入尖括号文本</a> </li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.imkevinyang.com/2009/02/silverlight-2-rtm-%e5%a4%9a%e5%9b%bd%e8%af%ad%e8%a8%80%e6%94%af%e6%8c%81%ef%bc%88%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e6%9c%ac%e5%9c%b0%e5%8c%96%ef%bc%89.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: enhanced

Served from: www.imkevinyang.com @ 2012-02-08 00:22:31 -->
