Chcę usunąć AssemblyInfo.cpp, z powodu niektórych błędów metadanych, które czasem pojawiają się.Czy wymagany jest AssemblyInfo.cpp?
Czy AssemblyInfo.cpp jest przydatne do czegokolwiek? Czy może być usunięty bez żadnego problemu?
Chcę usunąć AssemblyInfo.cpp, z powodu niektórych błędów metadanych, które czasem pojawiają się.Czy wymagany jest AssemblyInfo.cpp?
Czy AssemblyInfo.cpp jest przydatne do czegokolwiek? Czy może być usunięty bez żadnego problemu?
Odkryłem jedno wyróżnienie dla tego pliku: ma to związek z wartościami zgłoszonymi pod wywołaniami Assembly.GetReferencedAssemblies
. Pracowałem nad śledzeniem numerów wersji naszych plików binarnych z naszego repozytorium SVN poprzez umieszczenie w nich numerów wersji. Początkowo też aktualizowałem AssemblyInfo.cpp
i nie znalazłem niczego, co podano w zakładce szczegółów pliku pliku binarnego. Wygląda na to, że ten plik nic dla mnie nie zrobił, jeśli chodzi o aktualizowanie tych szczegółów, co w przypadku z podobnymi aktualizacjami do csproj'a AssemblyInfo.cs
było , a nie. Dlaczego różnica jest właściwa?
Teraz w jednym z takich csproj mamy odniesienie do vcxproj i że csproj zrzuca do logu wersje wszystkich odwołanych złożeń za pomocą metody .NET Assembly.GetReferencedAssemblies
. Odkryłem, że numer zgłoszony w tym dzienniku nie był wersją vcxproj podaną przez zasób VS_VERSIONINFO
, który dodałem (co powoduje, że szczegóły wersji znajdują się w zakładce szczegółów właściwości pliku). Zamiast tego zgłoszona liczba faktycznie pasowała do tej zdefiniowanej w AssemblyInfo.cpp
.
Tak więc dla plików vcxproj wygląda na to, że VS_VERSIONINFO
jest w stanie zaktualizować zawartość znajdującą się pod zakładką szczegółów właściwości pliku, ale AssemblyInfo.cpp
może wystawiać wersję na GetReferencedAssemblies
. W języku C# te dwa obszary raportowania wydają się być zunifikowane. Być może istnieje sposób, aby skierować AssemblyInfo.cpp
do propagacji w szczegóły pliku w pewien sposób, ale co mam zamiar skończyć robi jest duplikowanie informacji o kompilacji do obu lokalizacji w etapie budowania. Może ktoś może znaleźć lepsze podejście.
Dlaczego nie naprawiać błędów? W tej notatce, jakie błędy dostaniesz?
Ten plik zawiera informacje, takie jak numer wersji, który jest absolutnie niezbędny do użycia złożonego zestawu.
Do tej pory nigdy nie miałem AssemblyInfo.cpp w moich bibliotekach zarządzanych C++, więc nie sądzę, że jest to konieczne.
(Właśnie dodałem plik, aby uzyskać informacje o wersji dla moich bibliotek dll C++).
Błędy są opisane w http://stackoverflow.com/questions/810827/lnk2022-metadata-operation-failed-driving-me-insane ... jeśli chodzi o to, jak plik jest "zdecydowanie potrzebny", wydaje się, że działa bez niego?!? – demoncodemonkey
Bez tych informacji kompilator nie może określić, czy złożenie ma wartość 1. i 2. jest nieaktualna, czy nie. Problem, z którym się łączysz, sprowadza się do niedopasowania między kompilacjami zespołu. Po jego sterylizacji nie ma już błędu niezgodności, ponieważ kompilator nie może stwierdzić, że istnieje różnica. – NotMe
W efekcie nie rozwiązałeś problemu. Zamiast tego właśnie to ukryłeś. – NotMe