2010-12-06 116 views
1

我使用Visual Studio 2010編寫了一個應用程序,該應用程序被配置爲使用3.5框架運行。Visual Studio項目轉換錯誤

然後我檢查了這個項目,並且有一個使用Visual Studio 2008的同事抓住了這個項目。然後他開始得到一個錯誤,說它找不到文件\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets強調v10.0

首先,爲什麼當我將它轉換爲3.5時引用2010目錄?它不應該運行在沒有安裝VS 2010的機器上嗎?

其次,什麼是Microsoft.WebApplication.targets,爲什麼我需要它?

+0

你的同事做了什麼來打開這個項目? VS2008無法讀取VS2010項目。 – 2010-12-06 19:42:12

+0

@Hans你確定這是正確的嗎?我已經能夠打開vs2008使用3.5框架編譯的VS2010項目,但只有當我在該機器上安裝vs2010時也是如此。爲什麼我選擇(被迫)這樣做是另一回事。 – 2010-12-06 20:43:44

回答

3

由於v10.0(第二個)路徑不存在於未安裝V2010的機器中,因此VS2008無法加載該項目。

VS 2008的路徑 -

<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v9.0\WebApplications\Microsoft.WebApplication.targets" /> 

VS 2010路徑 -

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" /> 

但如果u要在安裝這兩種運行它,做作爲欠 第一步: 添加V10。 V9.0 MSBuild擴展路徑之前的0路徑,並使用Condition屬性根據解決方案版本檢查文件。

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="'$(Solutions.VSVersion)' == '10.0'" /> 

<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v9.0\WebApplications\Microsoft.WebApplication.targets" Condition="'$(Solutions.VSVersion)' == '9.0'" /> 

這裏是我們沒有指定Visual Studio 2010 MSBuild擴展路徑,首先Visual Studio會嘗試升級項目。

第二步:升級VS2010

項目文件後,將一改以往FileUpgradeFlags標籤值設置爲0,這將再次觸發升級。從標籤中刪除零。

<FileUpgradeFlags></FileUpgradeFlags> 

保存項目文件並重新加載。現在您將可以在VS2010中加載項目& VS2008(即使未安裝VS2010)也沒有任何問題。

0

目標框架是什麼並不重要。如果項目是使用VS 2010創建的,則無法在VS 2008中打開。

但是,使用VS 2008創建的項目可以轉換爲VS 2010格式。

關於第二個錯誤,您是否安裝了帶有「Visual Web Developer」組件的VS 2010?

該文件與該組件一起安裝。

+1

我不認爲這是正確的。我創造了它所抱怨的道路,並且它正確地打開了。 – 2010-12-07 19:44:53

相關問題