2009-04-30 25 views

Respuesta

4

Descubrí una distinción para este archivo: tiene que ver con los valores informados en las llamadas al Assembly.GetReferencedAssemblies. Estaba trabajando en el seguimiento de los números de versión de nuestros binarios desde nuestro repositorio SVN al incorporar los números de revisión en ellos. Inicialmente, yo también estaba actualizando AssemblyInfo.cpp y no encontré nada informado en la pestaña de detalles de la propiedad del archivo binario. Parecía que este archivo no hizo nada por mí en términos de actualización de esos detalles, que fue no el caso con actualizaciones similares a AssemblyInfo.cs de un csproj. ¿Por qué la diferencia, verdad?

Ahora, en uno de estos csproj, hacemos referencia a un vcxproj y ese csproj volca a un registro de las versiones de todos sus ensamblados a los que se hace referencia utilizando el método .NET Assembly.GetReferencedAssemblies. Lo que descubrí fue que el número que se informaba en ese registro no era la versión de vcxproj, tal como figura en el recurso VS_VERSIONINFO que agregué (que obtiene los detalles de la versión en la pestaña de detalles de las propiedades del archivo). En cambio, el número reportado coincidía con el definido en el AssemblyInfo.cpp.

Así que para archivos vcxproj se ve como VS_VERSIONINFO es capaz de actualizar el contenido que usted encuentra en las propiedades de archivo detalles pestaña pero AssemblyInfo.cpp es capaz de exponer la versión de GetReferencedAssemblies. En C#, estas dos áreas de informes parecen estar unificadas. Quizás haya una manera de dirigir AssemblyInfo.cpp para propagar en los detalles del archivo de alguna manera, pero lo que voy a terminar haciendo es duplicar la información de compilación en ambas ubicaciones en un paso previo a la compilación. Tal vez alguien pueda encontrar un mejor enfoque.

1

¿Por qué no soluciona los errores? En esa nota, ¿qué errores estás obteniendo?

Este archivo proporciona información como un número de versión que es definitivamente necesario para utilizar el conjunto que ha creado.

+0

Los errores se describen en http://stackoverflow.com/questions/810827/lnk2022-metadata-operation-failed-driving-me-insane ... en cuanto a cómo el archivo es "definitivamente necesario", así parece para trabajar bien sin eso?!? – demoncodemonkey

+0

Sin esa información, el compilador no puede determinar si el ensamblado es 1. correcto y 2. desactualizado o no. El problema que ha vinculado se reduce a una falta de coincidencia entre las versiones del ensamblaje. Al castrarlo ya no se obtiene el error de desajuste porque el compilador no puede decir que hay una diferencia. – NotMe

+0

Entonces, en efecto, no ha resuelto el problema. En cambio, lo has escondido. – NotMe

1

Hasta ahora, nunca he tenido AssemblyInfo.cpp en mis DLL administradas dlls, así que no creo que sea necesario.

(Acabo de agregar el archivo para tener información de versión para mis dlls C++).

Cuestiones relacionadas