Voglio rimuovere AssemblyInfo.cpp, a causa di alcuni errori di metadati che a volte si presentano.È necessario AssemblyInfo.cpp?
AssemblyInfo.cpp è utile per qualcosa? O può essere rimosso senza problemi?
Voglio rimuovere AssemblyInfo.cpp, a causa di alcuni errori di metadati che a volte si presentano.È necessario AssemblyInfo.cpp?
AssemblyInfo.cpp è utile per qualcosa? O può essere rimosso senza problemi?
Ho scoperto una distinzione per questo file: ha a che fare con i valori riportati nelle chiamate a Assembly.GetReferencedAssemblies
. Stavo lavorando per tenere traccia dei numeri di versione dei nostri binari dal nostro repository SVN inserendo i numeri di revisione in essi. Inizialmente anch'io stavo aggiornando AssemblyInfo.cpp
e non trovavo nulla segnalato nella scheda dei dettagli delle proprietà del file per il binario. Sembrava che questo file non facesse nulla per me in termini di aggiornamento di quei dettagli, che era non il caso con aggiornamenti simili a AssemblyInfo.cs
di csproj. Perché la differenza, giusto?
Ora in uno di questi csproj ci si riferisce a un vcxproj e che csproj scarica in un log le versioni di tutti i suoi assembly di riferimento utilizzando il metodo .NET Assembly.GetReferencedAssemblies
. Quello che ho scoperto è che il numero riportato nel registro non era la versione di vcxproj fornita dalla risorsa VS_VERSIONINFO
che ho aggiunto (che ottiene i dettagli della versione nella scheda dei dettagli delle proprietà del file). Invece il numero riportato corrispondeva effettivamente a quello definito nello AssemblyInfo.cpp
.
Così per i file vcxproj Sembra VS_VERSIONINFO
è in grado di aggiornare i contenuti che si trovano sotto le proprietà del file scheda Dettagli, ma AssemblyInfo.cpp
è in grado di esporre la versione a GetReferencedAssemblies
. In C# queste due aree di segnalazione sembrano essere unificate. Forse c'è un modo per indirizzare lo AssemblyInfo.cpp
in modo che si propaghi nei dettagli del file, ma quello che finirò facendo è duplicare le informazioni di build in entrambe le posizioni in una fase di pre-costruzione. Forse qualcuno può trovare un approccio migliore.
Perché non correggere gli errori? Su quella nota, quali errori stai ottenendo?
Questo file fornisce informazioni come un numero di versione che è assolutamente necessario per utilizzare l'assembly che è stato creato.
Finora non ho mai avuto AssemblyInfo.cpp nelle mie DLL C++ gestite, quindi non penso sia necessario.
(Ho appena aggiunto il file per avere informazioni sulla versione per le mie DLL C++).
Gli errori sono descritti in http://stackoverflow.com/questions/810827/lnk2022-metadata-operation-failed-driving-me-insane ... per come il file è "decisamente necessario", beh sembra lavorare bene senza di essa?!? – demoncodemonkey
Senza queste informazioni il compilatore non può determinare se l'assemblaggio è 1. quello giusto e 2. non aggiornato o meno. Il problema che hai collegato si riduce a una mancata corrispondenza tra le build dell'assembly. Neutralizzando non si ottiene più l'errore di disallineamento perché il compilatore non può dire che c'è una differenza. – NotMe
Quindi, in effetti, non hai risolto il problema. Invece l'hai appena nascosto. – NotMe