2011-10-20 78 views
3

我寫了一個簡單的VS2010 WPF應用程序,其目標爲.NET Framework 4客戶端配置文件。 (事實上​​,我的應用程序不使用任何.NET 4功能,但VS2010只是默認啓動我的項目針對.NET 4,所以我沒有打擾檢查它)VS2008中的.NET 4.0到3.5 SP1的端口

我發現所有的XP系統,甚至一些各種語言的窗口7無法啓動應用程序。我決定通過更改解決方案屬性中的Target Framework來支持我的應用程序,以便將目標設爲.NET Framework 3.5.NET Framework 3.5客戶端配置文件。但是,應用程序不會編譯或System.XamlMicrosoft.CSharp與以下錯誤建:

Warning 1 Could not resolve assembly System.Xaml. The target framework required by this assembly (4.0) is higher than the project target framework. If this reference is required by your code, you may get compilation errors. test1 
Warning 2 The primary reference "Microsoft.CSharp", which is a framework assembly, could not be resolved in the currently targeted framework. ".NETFramework,Version=v3.5". To resolve this problem, either remove the reference "Microsoft.CSharp" or retarget your application to a framework version which contains "Microsoft.CSharp". test1 
Warning 3 The referenced component 'Microsoft.CSharp' could not be found.  
Warning 4 The referenced component 'System.Xaml' could not be found. 

是否可以備份端口(或返回目標)一個VS2010應用.NET 3.5?如果是這樣,怎麼樣?

[編輯]

我發現有一個控制 - DataGrid的 - 這是設計用於.NET 4.我要安裝WPF工具包來支持端口控制到3.5。希望有人覺得這有幫助。

回答

4

只要刪除它們。測試它併爲我工作。我相信這些程序集僅在.NET 4中引入。例如,System.Xaml中的類型在.NET 3.5中定義了其他位置(例如,像PresentationCore)。有關更多信息,請參閱此article

+0

謝謝。儘管文章沒有指出替代引用是什麼,但它指向了正確的方向 - 即刪除不良引用,並且所有引用都屬於運行時間v2.0(其中大約20個),並且我的應用程序工作得很好。 – KMC

1

完全刪除這些參考。如果您仍然需要它們,請通過Visual Studio中的UI重新添加它們。您應該看到這些程序集的3.5版本或2.0版本。通過使用這些舊版本,您的應用程序應該編譯。

+0

移動參考後,窗口不顯示。而且我看不到要在「添加參考」中添加的引用.. – KMC

+0

@KMC如果您只是刪除它們並運行該項目,您的應用程序窗口會顯示嗎?我在我的WPF項目中測試了它,它工作正常。 –

+0

@IlianPinzon不,它不顯示。但現在它起作用了。看到我的評論給你的答案。 – KMC

0

您必須在參考文件夾中刪除這些參考文件,並用3.5版本讀取它們。