簡體   English   中英

Visual Studio 2010無法再構建.NET v3.5

[英]Visual Studio 2010 Can no longer build .NET v3.5

我有一個針對.NET v3.5的2010項目。 令人費解的是,我無法再構建v3.5項目。 該項目沒有添加任何參考。 它甚至不會讓我添加對System.Core的引用,因為它是由“構建系統”添加的。

警告CS1685:預定義類型'System.Func'在全局別名中的多個程序集中定義; 使用'c:\\ Windows \\ Microsoft.NET \\ Framework \\ v4.0.30319 \\ mscorlib.dll'中的定義

IFilter.cs(82,49):錯誤CS0433:類型'System.Func'存在於'c:\\ Program Files(x86)\\ Reference Assemblies \\ Microsoft \\ Framework \\ v3.5 \\ System.Core.dll'和'C:\\ WINDOWS \\ Microsoft.NET \\框架\\ v4.0.30319 \\ mscorlib.dll中'

看起來有些東西正在抓住4.0但我不太確定如何修復它。 還有其他人碰到這個嗎?

同事有同樣的問題。 重新安裝Windows以解決問題

我在這個問題上打開了一個錯誤: https//connect.microsoft.com/VisualStudio/feedback/details/558245/warning-cs1685-when-compiling-a-v3-5-net-application-in-visual-工作室2010

如果編譯器設置為verbose,我會看到:

FrameworkPathOverride = C:\\ Windows \\ Microsoft.NET \\ Framework \\ v4.0.30319

定義為:

指定mscorlib.dll和microsoft.visualbasic.dll的位置。 此參數等效於vbc.exe編譯器的/ sdkpath開關。

其他一些有趣的花絮:我一起創建了一個新項目,根本無法構建v3.5。 我可以毫無問題地構建2.0,3.0,3.5客戶端配置文件,4.0和4.0客戶端配置文件。 VB.NET可以構建v3.5但C#不能。 我嘗試重新安裝.NET 3.5,4.0和Visual Studio 2010但沒有成功。 Visual Studio調試日志沒有顯示任何有趣的安全模式不起作用。

試圖避免重新安裝Windows ...

編輯:我已經意識到其他人也面臨着這個問題。 鏈接鏈接鏈接


重新安裝了好幾次。 Visual Studio卸載不會自行清理。 我已經開發了一個虛擬機來開發,直到我有機會重新安裝我的主操作系統。

問題是這篇文章所做的更改造成的。 強制加載最新的CLR版本是導致問題的原因。 小心!

小作弊:打開VS210項目屬性頁面ob build高級檢查不要引用mscorlib.dll。 然后在文本編輯器中打開項目文件並添加到引用中:

<Reference Include="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL" />

再見

我已多次看到這個問題 - 解決方法可能非常簡單。

在我的例子中,違規的VS項目包含許多虛擬目錄(20)。

一旦再次發生這種情況,我會刪除所有Virtuals Dirs,然后一次重新創建一個,並在每次尋找此erorr時重建項目。

當我在沒有編譯的情況下背靠背添加兩個虛擬時,錯誤再次出現。

解決方案是刪除最后一個VDir,然后重建,恢復Vdirs然后重建。 只是通過有條不紊地重復一個可以成為“時間戳”或“sunktime”的過程找到的那些令人毛骨悚然的古怪事物,這些過程需要你的白天,傍晚,深夜,並可能在當地的精釀啤酒廠獲得一杯好啤酒。

這里有一個建議:

  1. 清潔您的解決方案並重試。 如果沒有成功繼續第2步。
  2. 通過右鍵單擊項目並選擇條目“卸載項目”來卸載項目
  3. 再次右鍵單擊並選擇“編輯項目”
  4. 確保您的項目以正確的框架版本為目標,並設置以下標記的值:
 <TargetFrameworkVersion>v4.0</TargetFrameworkVersion> 
  1. 檢查項目的參考列表:
 <ItemGroup> <Reference Include="System" /> <Reference Include="System.Data" /> <Reference Include="System.Xml" /> <Reference Include="Microsoft.CSharp" /> ... </ItemGroup> 

確保沒有雙重參考。

我希望這有幫助。

如果沒有,請備份項目文件,刪除項目並重新添加到新項目。 這應該很有可能奏效。

我想在項目或解決方案文件中可能會引用4.0框架 - 也許有不同的TargetFrameworkVersion元素。 或者bin或obj文件夾中的某些文件可能不同步。

嘗試清理解決方案,甚至手動刪除bin和obj文件夾的內容。 如果這沒有幫助,只需將當前版本與Subversion中的最后一個工作版本或您正在使用的版本控制系統進行比較,您應該看到,是否發生了更改。

根據Microsoft Connect上的這篇文章 ,您可以通過在解決方案或項目文件中添加一行來解決此問題,將AspNetCompiler的ToolPath設置為“C:\\ Windows \\ Microsoft.NET \\ Framework \\ v2.0.50727”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM