<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" 
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
<title>wasay !! blog !!</title>
<link>http://blog.yam.com/wasay</link>
<description>
記錄一些發生在你我間，可能你已經遇到或是即將碰到的奇怪電腦、網路問題...
</description>
<language>zh-tw</language>
<generator>blog.yam.com</generator>
<copyright>All Rights Reserved</copyright>
<item>
  <title>裝了 .NET framework 2.0 程式還不能正常執行?!</title>
  <description>
在 .net 2005 開發完程式，要給使用者執行時，要請他們電腦先安裝  .NET framework 2.0 通常就能 run 了，&lt;br /&gt;
&lt;br /&gt;
後來 發現不一定 100% 的程式都可過關，後來想說可能還要&lt;br /&gt;
&lt;br /&gt;
1.裝 .NET framework 2.0 繁中套件，來解決 中文路徑問題造成不能正常執行的可能，--&gt; 還是不能正常執行&lt;br /&gt;
&lt;br /&gt;
2.又裝了 .NET framework 2.0 service pack1 ，想說來把元件再補更齊試試~ --&gt; 還是不能正常執行&lt;br /&gt;
&lt;br /&gt;
3.輾轉 在國內外找到了 極少數的文章 ，說他的程式 裝 .NET framework 2.0 還不能 run，直到要 user 裝了 官方 4四百多M 的 .NET framework SDK 才能 run --&gt; 我也去裝了 ，真的還可以 run了 。&lt;br /&gt;
&lt;br /&gt;
難道為了 run 幾KB 的小程式 ，要 user 先裝 22.4M 的.NET framework 2.0 還不夠，還要再叫他裝 4四百多M 的 .NET framework SDK，這.... &gt;&lt; &quot;&lt;br /&gt;
&lt;br /&gt;
後來又想另一個解法：不然封裝起來給使用者好了，於是在用 2005 封裝的過程中，加入--&gt;組件 的時候，發現某個我要的組件的位置是在 C:\Program Files\Microsoft.NET\Primary Interop Assemblies\  裡面，試著把裡面的某個 .dll 複製到原本不能正常 run 的執行檔資料夾中，就可以 run 了。&lt;br /&gt;
&lt;br /&gt;
重點在於，印象中 Microsoft.NET 資料夾不是在 C:\WINDOWS\Microsoft.NET 這邊嗎? 怎麼 C:\Program Files\Microsoft.NET\ 也有一個，於是猜測是否每台電腦 都有此兩個同名資料夾?? 逆推回去驗証，&lt;br /&gt;
&lt;br /&gt;
一、只裝 .NET framework 2.0 ，會在 C:\WINDOWS\ 下面 建一個 Microsoft.NET 資料夾，裡面並沒有上述的 Primary Interop Assemblies\ 資料夾 (裝完.NET framework 2.0 之後，你已擁有大部份 .dll 檔了)&lt;br /&gt;
&lt;br /&gt;
二、回去看看裝了  .NET framework SDK 的電腦，發現 會建起 C:\Program Files\Microsoft.NET\Primary Interop Assemblies\ 資料夾，裡面有 adodb.dll、Microsoft.mshtml.dll、Microsoft.stdformat.dll、msdatasrc.dll、stdole.dll 五個 dll檔，若你 程式中有用到這些元件，你就得來此 把相關 dll檔 copy到 執行檔同一個資料夾中就能正常執行了~&lt;br /&gt;
&lt;br /&gt;
三、再回頭看 安裝了 VS2005 開發工具的電腦，若之前是選擇完整安裝的話，在 C:\Program &lt;br /&gt;
&lt;br /&gt;
Files\Microsoft.NET\Primary Interop Assemblies\ 資料夾，裡面除了上述 adodb.dll、Microsoft.mshtml.dll、Microsoft.stdformat.dll、msdatasrc.dll、stdole.dll 五個 dll檔之外，還多了 兩個 MSDDSLMP.DLL、MSDDSP.DLL 檔。&lt;br /&gt;
&lt;br /&gt;
這也解釋了 之前的一個假象：為何 使用者都裝了 .NET framework 2.0 還不能正常 run，但是 有裝 vs studio 開發工具的電腦就能 run 的奇怪現象~~&lt;br /&gt;
&lt;br /&gt;
這邊特地 列出少數 dll 的名稱(雖然數量少，但是有幾個 dll 還蠻常用的哩~)，&lt;br /&gt;
方便以後搜尋得到~&lt;br /&gt;

   </description>

<content:encoded><![CDATA[
在 .net 2005 開發完程式，要給使用者執行時，要請他們電腦先安裝  .NET framework 2.0 通常就能 run 了，<br />
<br />
後來 發現不一定 100% 的程式都可過關，後來想說可能還要<br />
<br />
1.裝 .NET framework 2.0 繁中套件，來解決 中文路徑問題造成不能正常執行的可能，--> 還是不能正常執行<br />
<br />
2.又裝了 .NET framework 2.0 service pack1 ，想說來把元件再補更齊試試~ --> 還是不能正常執行<br />
<br />
3.輾轉 在國內外找到了 極少數的文章 ，說他的程式 裝 .NET framework 2.0 還不能 run，直到要 user 裝了 官方 4四百多M 的 .NET framework SDK 才能 run --> 我也去裝了 ，真的還可以 run了 。<br />
<br />
難道為了 run 幾KB 的小程式 ，要 user 先裝 22.4M 的.NET framework 2.0 還不夠，還要再叫他裝 4四百多M 的 .NET framework SDK，這.... >< "<br />
<br />
後來又想另一個解法：不然封裝起來給使用者好了，於是在用 2005 封裝的過程中，加入-->組件 的時候，發現某個我要的組件的位置是在 C:\Program Files\Microsoft.NET\Primary Interop Assemblies\  裡面，試著把裡面的某個 .dll 複製到原本不能正常 run 的執行檔資料夾中，就可以 run 了。<br />
<br />
重點在於，印象中 Microsoft.NET 資料夾不是在 C:\WINDOWS\Microsoft.NET 這邊嗎? 怎麼 C:\Program Files\Microsoft.NET\ 也有一個，於是猜測是否每台電腦 都有此兩個同名資料夾?? 逆推回去驗証，<br />
<br />
一、只裝 .NET framework 2.0 ，會在 C:\WINDOWS\ 下面 建一個 Microsoft.NET 資料夾，裡面並沒有上述的 Primary Interop Assemblies\ 資料夾 (裝完.NET framework 2.0 之後，你已擁有大部份 .dll 檔了)<br />
<br />
二、回去看看裝了  .NET framework SDK 的電腦，發現 會建起 C:\Program Files\Microsoft.NET\Primary Interop Assemblies\ 資料夾，裡面有 adodb.dll、Microsoft.mshtml.dll、Microsoft.stdformat.dll、msdatasrc.dll、stdole.dll 五個 dll檔，若你 程式中有用到這些元件，你就得來此 把相關 dll檔 copy到 執行檔同一個資料夾中就能正常執行了~<br />
<br />
三、再回頭看 安裝了 VS2005 開發工具的電腦，若之前是選擇完整安裝的話，在 C:\Program <br />
<br />
Files\Microsoft.NET\Primary Interop Assemblies\ 資料夾，裡面除了上述 adodb.dll、Microsoft.mshtml.dll、Microsoft.stdformat.dll、msdatasrc.dll、stdole.dll 五個 dll檔之外，還多了 兩個 MSDDSLMP.DLL、MSDDSP.DLL 檔。<br />
<br />
這也解釋了 之前的一個假象：為何 使用者都裝了 .NET framework 2.0 還不能正常 run，但是 有裝 vs studio 開發工具的電腦就能 run 的奇怪現象~~<br />
<br />
這邊特地 列出少數 dll 的名稱(雖然數量少，但是有幾個 dll 還蠻常用的哩~)，<br />
方便以後搜尋得到~<br />

]]>
</content:encoded>


  <link>http://blog.yam.com/wasay/article/13734597</link>
  <category>養code_.NET</category>
  <pubDate>Mon, 04 Feb 2008 03:31:01 +0800</pubDate>
</item>
</channel>
</rss>