2011-04-22 22 views
5
AT.Anchor = System.Guid.Parse(DataBinder.Eval(e.Item.DataItem, "Anchor").ToString()); 

Esto arroja:C# System.Guid no contiene una definición para Analizar

'System.Guid' does not contain a definition for 'Parse' 

Cuando intento y construirlo. Pero funciona bien, ¿hay alguna idea de cómo puedo manejar esto mejor?

Editar

Aquí está una sección de mi web.config

<compilation defaultLanguage="c#" debug="true"> 
     <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="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
      <add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
      <add assembly="System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
      <add assembly="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
      <add assembly="System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
      <add assembly="System.Web.ApplicationServices, Version=4.0.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> 
    </compilation> 

Respuesta

8

Guid.TryParse es parte de .NET 4. Asegúrese de que los dos están construcción y explotación contra .NET 4, y debería estar bien.

+0

@ Jon, gracias por la respuesta, que yo en (carreras y funciona bien cuando corro el sitio, apenas no construir). ¿Cómo puedo verificar rápidamente qué versión estoy ejecutando? El grupo de aplicaciones es .net 4. –

+1

@Tom: Entonces parece que * ejecutas * contra 4 ... pero comprueba la versión contra la que compilas * en las propiedades del proyecto. –

+0

Esa es la parte contra la que Jon está hablando: se ejecuta en IIS, por lo que el grupo de aplicaciones controla la versión contra la que se ejecuta. También debe verificar las propiedades de configuración de los proyectos en Visual Studio. Haga clic con el botón derecho en el proyecto, elija Propiedades y observe las configuraciones de Aplicación y Construcción. Debería ver una propiedad de Marco de destino. Ahí es donde estableces aquello contra lo que se construye. –

1

Una de las cosas con los grupos de aplicaciones IIS es que la primera aplicación web que se inicia en un grupo de aplicaciones determina la versión CLR utilizada por ese grupo de aplicaciones.

Si la primera aplicación que se inició fue creada para, digamos, .Net v1.1, entonces cada aplicación que se inicie después se ejecutará contra el tiempo de ejecución v1.1. Si su aplicación, que comienza a continuación, fue creada para, por ejemplo, el tiempo de ejecución 4.0, es poco probable que encuentre la felicidad. Algunos podrían considerar esto como una característica. O no.

"Inicio", en este caso, significa "recibe una solicitud HTTP". Esto significa que la versión de tiempo de ejecución que obtiene es esencialmente aleatoria: depende de lo que hagan los clientes, y en qué orden, después de rebotar, el grupo de aplicaciones o rebote de IIS.

Debe tener cuidado de poner sus aplicaciones web en grupos de aplicaciones adecuadas. O agrupe cada aplicación web en su propio grupo de aplicaciones, o configure un grupo de aplicaciones por versión CLR y tenga cuidado de colocar sus aplicaciones web en el grupo de aplicaciones correcto.

Cuestiones relacionadas