2017-02-06 16 views
-1

我們已經寫在.NET 3.5和內置的應用程序時,我們是.NET 4.5已安裝在一臺機器上運行,WPF形成於IE瀏覽器,這會導致一些問題行爲的變化,當我從計算機中刪除.NET 4中,仍然有一個.NET 3.5的版本,問題就迎刃而解了。我怎麼能有.NET 4或更高版本我的機器上安裝,並迫使我的應用程序的工作剛剛.NET3.5安裝時爲。 我加入這個部分我的應用程序的配置,並沒有解決我的問題運行與.NET3.5建立在一個應用程序的機器女巫.NET 3.5和4.0兩者都安裝

<startup> 
     <supportedRuntime version="v2.0.50727"/> 
     <supportedRuntime version="v4.0"/> 
    </startup> 

我發現,雖然已經建立了我的.NET3.5的應用程序,在瀏覽器presentationhost負荷.NET4運行時組件運行。但我不知道爲什麼!以及如何使它加載.net3.5程序集。在應用程序清單

依賴部分是

 <dependency> 
        <dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true"> 
        <assemblyIdentity name="Microsoft.Windows.CommonLanguageRuntime" version="2.0.50727.0" /> 
        </dependentAssembly> 
      </dependency> 

但如果客戶端系統上裝有.NET4組件,.NET4 assemplies將在運行時加載!

+0

較低的版本框架將無法正常工作在更高的版本框架 –

+0

:)我的應用上已經安裝了更高版本的.NET框架的客戶機與.NET3.5工作。 – Rahfa

回答

0

無法任何機構幫我解決這個問題呢?

我們的客戶端機器已安裝.net3.5和4,並且需要安裝.net4,因爲其他機器上的應用需要.net4,問題是我們的應用程序使用.net3.5編譯並且部署clickonce需要只針對.net3.5而不是.net 4!

據我所知clickonce部署在IE中使用的xbap應用程序使用presentationHost.exe來承載和presentationHost加載正確的.net組件版本,我不知道爲什麼presentationHost加載clr4庫,而我編譯我的應用程序與.net3.5和明確我已經在所有的配置文件和清單中提到我的應用程序依賴於clr2!

以下設置適合我的應用程序的桌面版:

<startup useLegacyV2RuntimeActivationPolicy="true"> 
<supportedRuntime version="2.0.50727"/> 
</startup> 

和桌面應用程序的負載雖然.NET4(以上版本)也被安裝正確.NET3.5庫。但隨着瀏覽器的客戶端託管此配置設置和其他設置,我在清單文件中添加不阻止客戶端加載更高版本的.NET框架和.NET4組件將在應用領域,而我的應用程序需要只是.net3加載。 5個庫不是4個或更高的版本! @parvezalamkhan我手動更改清單文件,它的工作

相關問題