Mantener una sola copia de código fuente en múltiples proyectos

18/09/2006 - 10:30 por RFOG | Informe spam
Hola a todos.

Tengo un pequeño problema.

Estoy haciendo una aplicación, que consta de dos proyectos independientes
pero que realmente tienen casi exactamente el mismo código fuente. Uno es
para Windows CE y el otro para PC.

La forma de compartirlo es teniendo diferentes configuraciones, pero
resulta que el Visual C# sólo me permite tener varias configuraciones CE,
pero no mezclar de PC y de sistemas embebidos (cosa que en cierta medida
comparto, pues ambos proyectos usan diferente "toolkit", aunque las
aplicaciones compiladas con el compact ejecuten sin problemas en un PC).

Entonces me he creado otro proyecto, de forma que en la solución tengo dos
proyectos, uno para CE y el otro para PC. Pero a la hora de intentar
compartir el código fuente, el muy &%&$€@@| del IDE me COPIA el código, y
lo que yo quiero es un mismo fuente para ambos...

¿Hay alguna forma de hacerlo, o me tengo que resignar?

Visita mi blog: http://rfog.blogsome.com
Libros, ciencia ficción y programación
El número de hipótesis que puede explicar un fenómeno dado, es infinito.

Preguntas similare

Leer las respuestas

#11 RFOG
18/09/2006 - 13:19 | Informe spam
On Mon, 18 Sep 2006 13:14:04 +0200, Alejandro Mezcua <alejandro.mezcua en
<"byteabyte.net>"> wrote:

Hola.

Con Visual Studio puedes añadir un archivo fuente a un proyecto sin
necesidad de copiarlo. Para ello, en el proyecto pulsa 'Add existing...',
busca el archivo y, antes de darle al botón Add, fíjate que tiene una
pequeña flecha que te sacará un menú y hay una opción 'Add as link' que
te
dejará el archivo en su ubicación original.




¡Eso es lo que quería!

Joer, si es un elefante, me pisa.

Gracias.


En el proyecto el icono del archivo cambia a algo parecido a un acceso
directo.

Un saludo,

Alejandro Mezcua
MVP .NET Compact Framework
http://www.byteabyte.net/

"RFOG" wrote in message
news:
Hola a todos.

Tengo un pequeño problema.

Estoy haciendo una aplicación, que consta de dos proyectos
independientes
pero que realmente tienen casi exactamente el mismo código fuente. Uno
es
para Windows CE y el otro para PC.

La forma de compartirlo es teniendo diferentes configuraciones, pero
resulta que el Visual C# sólo me permite tener varias configuraciones
CE,
pero no mezclar de PC y de sistemas embebidos (cosa que en cierta medida
comparto, pues ambos proyectos usan diferente "toolkit", aunque las
aplicaciones compiladas con el compact ejecuten sin problemas en un PC).

Entonces me he creado otro proyecto, de forma que en la solución tengo
dos
proyectos, uno para CE y el otro para PC. Pero a la hora de intentar
compartir el código fuente, el muy &%&$¤@@| del IDE me COPIA el código,
y
lo que yo quiero es un mismo fuente para ambos...

¿Hay alguna forma de hacerlo, o me tengo que resignar?

Visita mi blog: http://rfog.blogsome.com
Libros, ciencia ficción y programación
>> El número de hipótesis que puede explicar un fenómeno dado, es infinito.









Visita mi blog: http://rfog.blogsome.com
Libros, ciencia ficción y programación
El número de hipótesis que puede explicar un fenómeno dado, es infinito.
Respuesta Responder a este mensaje
#12 Alejandro Mezcua
18/09/2006 - 13:29 | Informe spam
¿Has probado a variar la propiedad WriteTimeOut del puerto?. Por omisión
está a -1 que es infinito. Si lo cambias deberías obtener excepciones de
tipo TimeOut.

Un saludo,

Alejandro Mezcua
MVP .NET Compact Framework
http://www.byteabyte.net/

"RFOG" wrote in message
news:
On Mon, 18 Sep 2006 13:01:25 +0200,
wrote:


jajajaja... de todas formas programas para Windows CE no es nada
sencillo... asi que mucho animo y paciencia!!!




¿Me lo dices o me lo cuentas? Y encima con el juguete del C#.

Por cierto, creo que es un bug del NET, porque falla solito... Sin timer y
sin nada, como envíes una secuencia dentro de un bucle, se cuelga todo:

Ponte esto en el event de un botón en un proyecto vacío, y prueba a
clickar en el botón muchas veces seguidas... se cuelga hasta el visual
stdio...

private void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < 1000; i++)
{
serialPort1.Write(i.ToString());
//label1.Text = i.ToString();
}
}


Saludos
Roberto M. Oliva

RFOG ha escrito:

Na, 11 threads que tiene la aplicacioncilla de marras... Y eso que la
doc
dice que 1.

Ya está claro todo... Me toca "invokear" hasta al abuelo.



On Mon, 18 Sep 2006 12:41:11 +0200, RFOG
wrote:

> On Mon, 18 Sep 2006 12:29:03 +0200,
> wrote:
>
>> Hola!
>>
>> Aaaah! es una maquina con SO de Windows CE y luego tienes la misma
>> aplicacion para PC... bufff.
>> Solo se me ocurre comentarte una cosa... y es lo que creo que ya
estas
>> teniendo en cuenta: Aunque creas que no lo necesitas intenta
actualizar
>> los controles del formulario mediante invokes. Siempre te va a
>> funcionar, aunque no sea necesario. No vaya a ser que tu creas que
>> estas dentro del mismo hilo... y no sea asi.
>>
>> Saludos
>> Roberto M. Oliva
>>
>>
>
> Si la documentación no miente, todo está dentro del mismo hilo... Me
he
> asegurado antes de empezar. Porque realmente mi aplicación está mal
> hecha desde el principio. El "kernel" de la máquina debería ir en su
> propio proceso, y la UI en otro. Es la forma canónica, pero como tan
> solo se trata de una demo, pues para facilitarmen la tarea lo puse
todo
> en el mismo hilo. Ahora voy a pagar las consecuencias... porque me
> parece que "de la documentación al hecho hay un trecho". Voy a mirar
la
> lista de procesos completa, a ver qué hay...
>
>> RFOG ha escrito:
>>
>>> On Mon, 18 Sep 2006 11:48:39 +0200,
>>> wrote:
>>>
>>> >
>>> > Hola!!
>>> >
>>> > Ummmm no sera mejor intentar ver como puedes depurar ese problema
en
>>> > PocketPC?? Porque nosotros podiamos lanzar la aplicacion an ambos
>>> > depuradores sin probelmas.
>>> >
>>>
>>> Es que en CE (no es pocket PC, es un "aparato"), no se produce,
sólo se
>>> produce en el PC (de hecho se cuelga todo, hasta el Visual Studio).
Y
>>> en
>>> el proyecto para CE, no tengo por ningún lado lanzarlo en el PC, ni
en
>>> las
>>> configuraciones, ni en el Dispositivo.
>>>
>>> De hecho, es un 0xc0000005 en mscorwks.dll, que me hace pensar en un
>>> bug
>>> del NET más que en algún problema mío. Lo único que podría fallar
es un
>>> timer que me escribe en el puerto serie, pero resulta que es un
timer
>>> "Windows Forms" que se ejecuta en el mismo hilo de la aplicación,
por
>>> lo
>>> que no necesito "invokes", de hecho el timer no saca nada por
>>> pantalla. Y
>>> se cuelga de forma rara, no es un problema de contención ni de
>>> secciones
>>> críticas, el timer va a a su bola haciendo polling con sus
variables.
>>> Cuando tengo que escribir algo, paro el timer, y escribo
directamente,
>>> con
>>> otro juego de variables. Como todo está en el mismo hilo, el timer
lo
>>> paro
>>> cuando no se está disparando, por lo que no debería haber ningún
>>> problema.
>>>
>>> Si la documentación no miente, claro.
>>>
>>> > Saludos
>>> > Roberto M. Oliva
>>> >
>>> >
>>> >
>>> >
>>> > RFOG ha escrito:
>>> >
>>> >> Es que lo tenía así, pero me ha surgido un problema que se
produce
>>> en el
>>> >> PC y no en el CE, y desde el proyecto CE no puedo lanzarlo con el
>>> >> depurardor en el PC...
>>> >>
>>> >>
>>> >> On Mon, 18 Sep 2006 11:14:53 +0200,
>>> >> wrote:
>>> >>
>>> >> >
>>> >> > Hola!
>>> >> >
>>> >> > Yo cuando programaba para PocketPC y Windows CE intentaba
tener un
>>> >> > mismo proyecto para ambos.
>>> >> > Es relativamente sencillo detectar la version del SO al
arrancar
>>> el
>>> >> > programa y adaptar el GUI a cada maquina. Tambien es sencillo
>>> evitar
>>> >> > llamadas a la API que estan implementadas en el PocketPC y no
lo
>>> estan
>>> >> > en Windows CE.
>>> >> > Este es mi consejo. Crea solo un ejecutable para ambas
>>> plataformas...
>>> >> > si no te vas a volver loco!
>>> >> >
>>> >> > Saludos
>>> >> > Roberto M. Oliva
>>> >> >
>>> >> >
>>> >> >
>>> >> > RFOG ha escrito:
>>> >> >
>>> >> >> Hola a todos.
>>> >> >>
>>> >> >> Tengo un pequeño problema.
>>> >> >>
>>> >> >> Estoy haciendo una aplicación, que consta de dos proyectos
>>> >> >> independientes
>>> >> >> pero que realmente tienen casi exactamente el mismo código
>>> fuente.
>>> >> Uno
>>> >> >> es
>>> >> >> para Windows CE y el otro para PC.
>>> >> >>
>>> >> >> La forma de compartirlo es teniendo diferentes
configuraciones,
>>> pero
>>> >> >> resulta que el Visual C# sólo me permite tener varias
>>> configuraciones
>>> >> >> CE,
>>> >> >> pero no mezclar de PC y de sistemas embebidos (cosa que en
cierta
>>> >> medida
>>> >> >> comparto, pues ambos proyectos usan diferente "toolkit",
aunque
>>> las
>>> >> >> aplicaciones compiladas con el compact ejecuten sin problemas
en
>>> un
>>> >> PC).
>>> >> >>
>>> >> >> Entonces me he creado otro proyecto, de forma que en la
solución
>>> >> tengo
>>> >> >> dos
>>> >> >> proyectos, uno para CE y el otro para PC. Pero a la hora de
>>> intentar
>>> >> >> compartir el código fuente, el muy &%&$¤@@| del IDE me COPIA
el
>>> >> código,
>>> >> >> y
>>> >> >> lo que yo quiero es un mismo fuente para ambos...
>>> >> >>
>>> >> >> ¿Hay alguna forma de hacerlo, o me tengo que resignar?
>>> >> >>
>>> >> >> Visita mi blog: http://rfog.blogsome.com
>>> >> >> Libros, ciencia ficción y programación
>>> >> >> >>> >>> >> >> El número de hipótesis que puede explicar un fenómeno dado, es
>>> >> infinito.
>>> >> >
>>> >>
>>> >>
>>> >>
>>> >> Visita mi blog: http://rfog.blogsome.com
>>> >> Libros, ciencia ficción y programación
>>> >> >>> >>> >> El número de hipótesis que puede explicar un fenómeno dado, es
>>> infinito.
>>> >
>>>
>>>
>>>
>>> Visita mi blog: http://rfog.blogsome.com
>>> Libros, ciencia ficción y programación
>>> >>> >>> El número de hipótesis que puede explicar un fenómeno dado, es
>>> infinito.
>>
>
>
>



Visita mi blog: http://rfog.blogsome.com
Libros, ciencia ficción y programación
>>> El número de hipótesis que puede explicar un fenómeno dado, es infinito.








Visita mi blog: http://rfog.blogsome.com
Libros, ciencia ficción y programación
> El número de hipótesis que puede explicar un fenómeno dado, es infinito.
Respuesta Responder a este mensaje
#13 RFOG
18/09/2006 - 15:25 | Informe spam
On Mon, 18 Sep 2006 13:29:27 +0200, Alejandro Mezcua <alejandro.mezcua en
<"byteabyte.net>"> wrote:

¿Has probado a variar la propiedad WriteTimeOut del puerto?. Por omisión
está a -1 que es infinito. Si lo cambias deberías obtener excepciones de
tipo TimeOut.

Un saludo,

Alejandro Mezcua
MVP .NET Compact Framework
http://www.byteabyte.net/



Es una cosa muy curiosa, y sigo pensando que es un tema del NET.

No había caído en lo del timeout al escribir -el de lectura lo tengo
puesto a 50 ms, que es tiempo máximo de lo que está al otro lado para
responderme... Ahora pongo el mismo timeout en la escritura y ya no se
cuelga, ni el ejemplo ni mi programa... que es completamente secuencial
aunque tenga un timer.

Y lo curioso es que no recibo ningún tipo de excepción, si lo lanzo sin el
debugger, me suelta un c00005 en mscorwks.dll y no me deja depurar ni
nada...

Pero al menos he solucionado mi problema con lo del timeout.

Gracias.

Visita mi blog: http://rfog.blogsome.com
Libros, ciencia ficción y programación
El número de hipótesis que puede explicar un fenómeno dado, es infinito.
Respuesta Responder a este mensaje
#14 RFOG
20/09/2006 - 11:04 | Informe spam
Joder.

Lo sabía...

Lo sabía...

Es un puto bug del NET x64 (o del XP x64). En x86 no se cuelga así lo mates.
Es un puto bug del NET x64 (o del XP x64). En x86 no se cuelga así lo mates.
Es un puto bug del NET x64 (o del XP x64). En x86 no se cuelga así lo mates.
Es un puto bug del NET x64 (o del XP x64). En x86 no se cuelga así lo mates.

Cómo me queman estas cosas, joder.




Visita mi blog: http://rfog.blogsome.com
Libros, ciencia ficción y programación
Si un experimento tiene éxito, algo ha salido mal.

"Alejandro Mezcua" <alejandro.mezcua en byteabyte.net> wrote in message
news:
¿Has probado a variar la propiedad WriteTimeOut del puerto?. Por omisión
está a -1 que es infinito. Si lo cambias deberías obtener excepciones de
tipo TimeOut.

Un saludo,

Alejandro Mezcua
MVP .NET Compact Framework
http://www.byteabyte.net/

"RFOG" wrote in message
news:
On Mon, 18 Sep 2006 13:01:25 +0200,
wrote:


jajajaja... de todas formas programas para Windows CE no es nada
sencillo... asi que mucho animo y paciencia!!!




¿Me lo dices o me lo cuentas? Y encima con el juguete del C#.

Por cierto, creo que es un bug del NET, porque falla solito... Sin timer
y sin nada, como envíes una secuencia dentro de un bucle, se cuelga todo:

Ponte esto en el event de un botón en un proyecto vacío, y prueba a
clickar en el botón muchas veces seguidas... se cuelga hasta el visual
stdio...

private void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < 1000; i++)
{
serialPort1.Write(i.ToString());
//label1.Text = i.ToString();
}
}


Saludos
Roberto M. Oliva

RFOG ha escrito:

Na, 11 threads que tiene la aplicacioncilla de marras... Y eso que la
doc
dice que 1.

Ya está claro todo... Me toca "invokear" hasta al abuelo.



On Mon, 18 Sep 2006 12:41:11 +0200, RFOG
wrote:

> On Mon, 18 Sep 2006 12:29:03 +0200,
> wrote:
>
>> Hola!
>>
>> Aaaah! es una maquina con SO de Windows CE y luego tienes la misma
>> aplicacion para PC... bufff.
>> Solo se me ocurre comentarte una cosa... y es lo que creo que ya
estas
>> teniendo en cuenta: Aunque creas que no lo necesitas intenta
actualizar
>> los controles del formulario mediante invokes. Siempre te va a
>> funcionar, aunque no sea necesario. No vaya a ser que tu creas que
>> estas dentro del mismo hilo... y no sea asi.
>>
>> Saludos
>> Roberto M. Oliva
>>
>>
>
> Si la documentación no miente, todo está dentro del mismo hilo... Me
he
> asegurado antes de empezar. Porque realmente mi aplicación está mal
> hecha desde el principio. El "kernel" de la máquina debería ir en su
> propio proceso, y la UI en otro. Es la forma canónica, pero como tan
> solo se trata de una demo, pues para facilitarmen la tarea lo puse
todo
> en el mismo hilo. Ahora voy a pagar las consecuencias... porque me
> parece que "de la documentación al hecho hay un trecho". Voy a mirar
la
> lista de procesos completa, a ver qué hay...
>
>> RFOG ha escrito:
>>
>>> On Mon, 18 Sep 2006 11:48:39 +0200,
>>> wrote:
>>>
>>> >
>>> > Hola!!
>>> >
>>> > Ummmm no sera mejor intentar ver como puedes depurar ese problema
en
>>> > PocketPC?? Porque nosotros podiamos lanzar la aplicacion an ambos
>>> > depuradores sin probelmas.
>>> >
>>>
>>> Es que en CE (no es pocket PC, es un "aparato"), no se produce,
sólo se
>>> produce en el PC (de hecho se cuelga todo, hasta el Visual Studio).
Y
>>> en
>>> el proyecto para CE, no tengo por ningún lado lanzarlo en el PC, ni
en
>>> las
>>> configuraciones, ni en el Dispositivo.
>>>
>>> De hecho, es un 0xc0000005 en mscorwks.dll, que me hace pensar en
>>> un
>>> bug
>>> del NET más que en algún problema mío. Lo único que podría fallar
es un
>>> timer que me escribe en el puerto serie, pero resulta que es un
timer
>>> "Windows Forms" que se ejecuta en el mismo hilo de la aplicación,
por
>>> lo
>>> que no necesito "invokes", de hecho el timer no saca nada por
>>> pantalla. Y
>>> se cuelga de forma rara, no es un problema de contención ni de
>>> secciones
>>> críticas, el timer va a a su bola haciendo polling con sus
variables.
>>> Cuando tengo que escribir algo, paro el timer, y escribo
directamente,
>>> con
>>> otro juego de variables. Como todo está en el mismo hilo, el timer
lo
>>> paro
>>> cuando no se está disparando, por lo que no debería haber ningún
>>> problema.
>>>
>>> Si la documentación no miente, claro.
>>>
>>> > Saludos
>>> > Roberto M. Oliva
>>> >
>>> >
>>> >
>>> >
>>> > RFOG ha escrito:
>>> >
>>> >> Es que lo tenía así, pero me ha surgido un problema que se
produce
>>> en el
>>> >> PC y no en el CE, y desde el proyecto CE no puedo lanzarlo con
>>> >> el
>>> >> depurardor en el PC...
>>> >>
>>> >>
>>> >> On Mon, 18 Sep 2006 11:14:53 +0200,
>>> >> wrote:
>>> >>
>>> >> >
>>> >> > Hola!
>>> >> >
>>> >> > Yo cuando programaba para PocketPC y Windows CE intentaba
tener un
>>> >> > mismo proyecto para ambos.
>>> >> > Es relativamente sencillo detectar la version del SO al
arrancar
>>> el
>>> >> > programa y adaptar el GUI a cada maquina. Tambien es sencillo
>>> evitar
>>> >> > llamadas a la API que estan implementadas en el PocketPC y no
lo
>>> estan
>>> >> > en Windows CE.
>>> >> > Este es mi consejo. Crea solo un ejecutable para ambas
>>> plataformas...
>>> >> > si no te vas a volver loco!
>>> >> >
>>> >> > Saludos
>>> >> > Roberto M. Oliva
>>> >> >
>>> >> >
>>> >> >
>>> >> > RFOG ha escrito:
>>> >> >
>>> >> >> Hola a todos.
>>> >> >>
>>> >> >> Tengo un pequeño problema.
>>> >> >>
>>> >> >> Estoy haciendo una aplicación, que consta de dos proyectos
>>> >> >> independientes
>>> >> >> pero que realmente tienen casi exactamente el mismo código
>>> fuente.
>>> >> Uno
>>> >> >> es
>>> >> >> para Windows CE y el otro para PC.
>>> >> >>
>>> >> >> La forma de compartirlo es teniendo diferentes
configuraciones,
>>> pero
>>> >> >> resulta que el Visual C# sólo me permite tener varias
>>> configuraciones
>>> >> >> CE,
>>> >> >> pero no mezclar de PC y de sistemas embebidos (cosa que en
cierta
>>> >> medida
>>> >> >> comparto, pues ambos proyectos usan diferente "toolkit",
aunque
>>> las
>>> >> >> aplicaciones compiladas con el compact ejecuten sin problemas
en
>>> un
>>> >> PC).
>>> >> >>
>>> >> >> Entonces me he creado otro proyecto, de forma que en la
solución
>>> >> tengo
>>> >> >> dos
>>> >> >> proyectos, uno para CE y el otro para PC. Pero a la hora de
>>> intentar
>>> >> >> compartir el código fuente, el muy &%&$¤@@| del IDE me COPIA
el
>>> >> código,
>>> >> >> y
>>> >> >> lo que yo quiero es un mismo fuente para ambos...
>>> >> >>
>>> >> >> ¿Hay alguna forma de hacerlo, o me tengo que resignar?
>>> >> >>
>>> >> >> Visita mi blog: http://rfog.blogsome.com
>>> >> >> Libros, ciencia ficción y programación
>>> >> >> >>>> >>> >> >> El número de hipótesis que puede explicar un fenómeno dado,
>>> >> >> es
>>> >> infinito.
>>> >> >
>>> >>
>>> >>
>>> >>
>>> >> Visita mi blog: http://rfog.blogsome.com
>>> >> Libros, ciencia ficción y programación
>>> >> >>>> >>> >> El número de hipótesis que puede explicar un fenómeno dado, es
>>> infinito.
>>> >
>>>
>>>
>>>
>>> Visita mi blog: http://rfog.blogsome.com
>>> Libros, ciencia ficción y programación
>>> >>>> >>> El número de hipótesis que puede explicar un fenómeno dado, es
>>> infinito.
>>
>
>
>



Visita mi blog: http://rfog.blogsome.com
Libros, ciencia ficción y programación
>>>> El número de hipótesis que puede explicar un fenómeno dado, es
infinito.








Visita mi blog: http://rfog.blogsome.com
Libros, ciencia ficción y programación
>> El número de hipótesis que puede explicar un fenómeno dado, es infinito.




email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida