2011-04-25 150 views
2
Error 102 'System.Guid' does not contain a definition for 'Parse' 

根據MSDN:ASP.net編譯項目錯誤

http://msdn.microsoft.com/en-us/library/system.guid.parse.aspx

這是因爲解析方法是mscorlib (in mscorlib.dll), .NET 4.0

我所有的項目設置/應用程序池設置爲.NET 4.0。但我在web.config中組件如下:

<assemblies> 
    <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
    <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
    <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
    <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
    <add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
    <add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/> 
    <add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> 
    <add assembly="System.ServiceModel.Web, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
    <add assembly="MySql.Data, Version=6.3.6.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D"/> 
    <add assembly="MySql.Data.Entity, Version=6.3.6.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D"/> 
    <add assembly="MySql.Web, Version=6.3.6.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D"/> 
</assemblies> 

如果我改變System.Core程序到版本4.0.0.0它拋出了很多的錯誤:

Error 102 The type or namespace name 'Linq' does not exist in the namespace 'System' (are you missing an assembly reference?) 

誰能幫我解決它,我可以建立我的網站?

+0

您是否嘗試過在類中添加的命名空間你在哪裏訪問?像'System.Linq'或'System.Data.Linq'? – neebz 2011-04-25 16:41:09

+0

@Nee是的,他們都有這些引用 – 2011-04-25 16:46:04

回答

3

Guid.Parse只是一個.NET 4.0方法,也是Silverlight也是,但這裏不相關。您不能只升級一個程序集,將整個站點升級到.NET 4.0。或者你可以簡單地嘗試從它的舊字符串表示中創建一個新的GUID,如果你需要保持在3.5。

try 
{ 
    Guid newGUID = new Guid("CA761232-ED42-11CE-BACD-00AA0057B223"); 
} 
catch (FormatException fe) 
{ 
    //Handle failed Guid parsing 
} 
catch (OverflowException oe) 
{ 
    //Handle failed Guid parsing 
} 
+1

非常感謝,我只是要使用新的GUID方法。現在修好了。 – 2011-04-25 16:52:24

0

嘗試創建一個新的.NET 4.0站點,並將其中所有<assemblies>標記值全部複製。

您是否嘗試將其全部刪除?

0

1 - System.Guid.Parse - ?嘗試的System.Guid()解析 - 你應該有一個紅色的線告訴語法錯誤

2 - 如果你是3.5,然後添加System.data,System.Data.Linq程序到您的項目 - 如果你是4.0,然後添加system.data和system.linq

我注意到你有引用System.web和System.windows.forms?在同一個項目中?一般來說是不好的做法,有使用Windows.Forms的

網站

最後發現如果MySQL的版本需要.NET 4.0 - 如果它確實還存在另一個問題