2011-04-25 151 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 - 如果它确实还存在另一个问题