Hola de nuevo,
¿A quien no le ha pasado al trabajar con control de código fuente (Team Foundation Server, por ejemplo) que vas a trabajar en un archivo y te dice que lo tiene "pillado" otra persona y esta esta de vacaciones y no hay manera de dar con ella? Pues hoy a mi aunque en vez de estar de vacaciones estaba en una reunión.
Para solucionarlo he seguido el/los siguientes pasos:
- Mediante consola (un cmd de toda la vida) me he posicionado en "C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE" (esta ruta puede variar dependiendo del sistema operativo y de la versión de Visual Studio instalada)
- Ejecutar la instrucción: tf lock /lock:none /workspace:developerWorkspace;developerUsername $/project/folder/file /s:http://tfsserver:8080/ (sustituyendo los datos genericos por los nuestros)
- Aparece el siguiente mensage: TF30063: You are not authorized to access XXXXXX. y nos pide meter nuestro usuario admin de TFS
Y ahora pueden pasar dos cosas: que se solucione o que aparezca el mensaje siguiente:
TF10152: The item $/XXXXXXX/XXXXXXXXX/XXXX.cs must remain locked because its file type prevents multiple check-outs.
Si nos aparece esto deberemos poner lo siguiente:
- tf undo /workspace:developerWorkspace;developerUsername $/project/folder/file /s:http://tfsserver:8080/
- TF30063: You are not authorized to access XXXXX. Metemos user y pass y...
BIEEENNNNNN
The operation completed successfully. Because the workspace XXXXX;username is not on this computer, you must perform a separate get operation in that workspace to update it with the changes that have been made on the server.
Como siempre, hacer una copia de seguridad por si acaso.
Editado 21/05/2010: Es importante especificar el workspace de la persona que ha dejado pillado el archivo y el username de esa persona. Posteriormente, cuando nos pregunte el usuario/pass deberemos introducir el de la persona con privilegios
Salu2
jueves, 8 de abril de 2010
Forzar Check in en TFS
Publicado por
Gon
en
16:06
0
comentarios
Etiquetas: TFS, Visual Studio
miércoles, 17 de junio de 2009
error creating the configuration section handler for dataConfiguration
Hola a todos,
Hace tiempo que no escribo ningún post y retomo el blog con este error con la Enterprise Library 4.1 que ha hecho que me tire una horita intentando solucionarlo:
"An error occurred creating the configuration section handler for dataConfiguration: Could not load file or assembly 'Microsoft.Practices.EnterpriseLibrary.Data, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)"
Gracias al siguiente post (http://blogs.msdn.com/tomholl/archive/2007/04/19/avoiding-configuration-pitfalls-with-incompatible-copies-of-enterprise-library.aspx) he encontrado el motivo del error y su correspondiente solución.
Cuando en el App.config nos vamos a la clave "<section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />" vemos que hay una PublicKey Token y un número que no coincide con la con el registrado en mi máquina.
Solución: Poner PublicKeyToken=null y listo.
A grandes malas, grandes remedios
Salu2
Publicado por
Gon
en
15:28
0
comentarios
Etiquetas: Visual Studio
jueves, 8 de enero de 2009
Sobre ASP.NET, C#, JavaScript, Alert y MessageBox
Hoy un post útil y sencillote pero que siempre que me toca hacer algo parecido me tiro más de 15 minutos buscando en Google como hacerlo. Si os fijais en el título del post más o menos quedará claro: sacar un MessageBox o un Alert desde una página aspx o ASP.NET justo antes de hacer un redirect (un ejemplo es el típico caso en que envias un email y a quieres que salga un mensaje y a continuación te redirija a otra página).
El único código que nunca falla y por ende siempre funciona es el siguiente:
Importamos System.Text y
StringBuilder sbScript = new StringBuilder();
sbScript.Append("<script language='JavaScript' type='text/javascript'>");
sbScript.Append("alert('HolaMundo');window.location='./default.html'");
bScript.Append("</script>");
// Con el ScriptManager registramos el script anterior.
Page.ClientScript.RegisterStartupScript(this.GetType(), "@@@@MyCallBackAlertScript", sbScript.ToString(), false);
Probad, probad.... nunca falla! :-D
Salu2
Publicado por
Gon
en
15:23
1 comentarios
Etiquetas: Visual Studio
miércoles, 24 de septiembre de 2008
Jobs en Oracle, .NET y errores con el idioma
Hola,
Siguiendo con el post anterior me pasó algo muy curioso, tenía unos Procedimientos Almacenados (SP) con unos parámetros de fecha, y a pesar de que iban como una cadena texto fijo, a la hora de llegar a ejecutarse en Oracle me fallaban.
Ejemplo: paquete.nombreSP('M', '01/01/2003', '31/12/'TO_CHAR(sysdate,'RRRR'),NULL);
Si el programa se ejecutaba en un SO en español funcionaba sin problemas, el fallo se producía cuando se ejecutaba en un SO en ingles que entonces se producía la siguiente excepción en Oracle:
ORA-12012: error on auto execute of job 2513
ORA-01843: not a valid month
ORA-06512: at line 1
Para solucionarlo es necesario añadir un poco de código respecto al que se vió en el post anterior que lo que va a hacer es cambiar la cultura del thread que llama a Oracle y lo vamos a forzar a que siempre sea en español (de España) y de esta manera Oracle 'se lo traga' sin problemas.
En el constructor ponemos esto:
Thread.CurrentThread.CurrentCulture = new CultureInfo("es-ES");
Y cuando ponemos el código que 'ataque' a la base de datos añadimos:
cmdSet.Connection = conn;
cmdSet.CommandType = System.Data.CommandType.Text;
cmdSet.CommandText = "ALTER SESSION SET NLS_DATE_FORMAT='DD/MM/RR'";
Finalmente, antes de ejecutar la 'query' que llama al 'job' de Oracle será necesario poner la siguiente línea:
cmdSet.ExecuteNonQuery();
En resumen, lo que estamos haciendo es ejecutar una sentencia SQL en Oracle antes de lanzar nuestro 'job' para que la sesión asociada a nuestra conexión la cambie a Español con el formato de fecha día/mes/año.
Si os pasa luego no digáis que no os avise ;-)
Salu2
Publicado por
Gon
en
12:05
0
comentarios
Etiquetas: Oracle, Visual Studio
martes, 23 de septiembre de 2008
Jobs, Oracle y .NET
Hola,
A modo introductorio de un post posterior a este voy a contaros como lanzar un job en Oracle desde un código .NET gracias al SP que se nos proporciona DBMS_JOB.submit
En su forma más básica sería algo parecido a esto:
Oracle.DataAccess.Client.OracleConnection conn = new Oracle.DataAccess.Client.OracleConnection(connString);
Oracle.DataAccess.Client.OracleCommand cmd = new Oracle.DataAccess.Client.OracleCommand();
Oracle.DataAccess.Client.OracleParameter paramID = new Oracle.DataAccess.Client.OracleParameter();
Oracle.DataAccess.Client.OracleParameter paramOpID = new Oracle.DataAccess.Client.OracleParameter();
Oracle.DataAccess.Client.OracleParameter paramOpWhat = new Oracle.DataAccess.Client.OracleParameter();
cmd.Connection = conn;
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "DBMS_JOB.submit";
paramOpID.ParameterName = "id";
paramOpID.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Decimal;
paramOpID.Direction = System.Data.ParameterDirection.Output;
cmd.Parameters.Add(paramOpID);
paramOpWhat.ParameterName = "What";
paramOpWhat.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Varchar2;
paramOpWhat.Direction = System.Data.ParameterDirection.Input;
paramOpWhat.Value = @jobName;
cmd.Parameters.Add(paramOpWhat);
conn.Open();
cmd.ExecuteNonQuery();
return paramOpID.Value.ToString();
Este SP tiene muchos otros parámetros que recomiendo que veáis en la siguiente web: http://www.psoug.org/reference/dbms_job.html
Salu2
Publicado por
Gon
en
15:08
0
comentarios
Etiquetas: Oracle, Visual Studio
lunes, 7 de abril de 2008
Diferencias entre workflows de Sharepoint Designer y Visual Studio
Gracias a un compañero de Raona, Carlos E., puedo publicar este gráfico que nos indica las diferencias entre diseñar un WF con SharePoint Designer y Visual Studio. Muy útil cuando quieres saber rápidamente con que herramienta empezar a trabajar y no tener que tirarlo todo y volver al principio ;-)
Category | SharePoint Designer | Visual Studio |
Supported WF Hosts | WSS/MOSS | WSS/MOSS/Others |
Development Model | Wizard based | Graphical Designer |
Types of Workflows Supported | Sequential | Sequential and State |
Workflow Type | Markup only; markup file, rules and supporting files are uncompiled | Markup with code behind compiled into an assembly |
Code Behind | No | Yes |
Activities | Built-in and use custom | Built-in, use and develop custom |
Forms Technology | Autogenerated, customizable ASP.NET Forms | Design forms in any technology including ASP.NET or InfoPath |
Association | Associated automatically with a single list at design time. No other associations possible. | Can be associated with multiple content types, lists, and document libraries |
Initiation | Initiation forms are supported | Initiation forms are supported |
Modification | Cannot modify workflow using modification forms | Can modify workflows |
Tasks | Supports custom task forms | Supports custom task forms |
Deployment | Automatically deployed to associated list, live changes | Must build package and deploy workflow using SharePoint feature technology |
Debugging | No Debugging | Visual Studio Debugging |
Publicado por
Gon
en
11:32
0
comentarios
Etiquetas: MOSS2007, Visual Studio
domingo, 24 de febrero de 2008
Visual Studio 2005 sin plantillas
Hola,
Este fin de semana y sin conexión a internet voy a crear un nuevo proyecto web en Visual Studio 2005 y cual no será mi sorpresa cuando la pantalla para elegir el tipo de proyecto estaba más blanca que las camisas de un anuncio cualquiera de detergente. El caso es que me rompi la cabeza un buen rato y me di por vencido recurriendo a una maquina virtual para tales menesteres. Acabo de llegar a casa y en menos de 3 minutos he encontrado la solución a mis problemas:
- Copiar el contenido de C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\ProjectTemplates en la ruta My Documents\Visual Studio 2005\Templates\ProjectTemplates.
- Copiar el contenido de C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\ItemTemplates en la ruta My Documents\Visual Studio 2005\Templates\ItemTemplates.
Con esto y sin tener que reinstalar Visual Studio se debería solucionar.
Como podíamos vivir hace unos pocos años sin internet y sin Google?
TODO: Probar http://www.live.com/ a ver si es tan bueno como prometen
Publicado por
Gon
en
21:34
6
comentarios
Etiquetas: Visual Studio
