Необходим ли файл AssemblyInfo.cpp?

Я хочу удалить AssemblyInfo.cpp из-за некоторых ошибок метаданных, которые иногда возникают.

Полезен ли для чего-нибудь AssemblyInfo.cpp? Или его можно без проблем удалить?


person demoncodemonkey    schedule 30.04.2009    source источник


Ответы (3)


Я обнаружил одно отличие этого файла: оно связано со значениями, сообщаемыми при вызовах Assembly.GetReferencedAssemblies. Я работал над отслеживанием номеров версий наших двоичных файлов из нашего репозитория SVN, встраивая в них номера версий. Первоначально я тоже обновлял AssemblyInfo.cpp и ничего не обнаружил на вкладке сведений о свойствах файла для двоичного файла. Казалось, что этот файл ничего не сделал для меня с точки зрения обновления этих деталей, чего не было не в случае с аналогичными обновлениями AssemblyInfo.cs csproj. Почему разница правильно?

Теперь в одном из таких csproj мы ссылаемся на vcxproj, и этот csproj записывает в журнал версии всех своих сборок, на которые ссылаются, используя метод .NET Assembly.GetReferencedAssemblies. Что я обнаружил, так это то, что номер, указанный в этом журнале, не был версией vcxproj, указанной добавленным мной ресурсом VS_VERSIONINFO (который действительно получает сведения о версии на вкладке сведений о свойствах файла). Вместо этого сообщаемое число фактически совпадало с тем, что определено в файле AssemblyInfo.cpp.

Таким образом, для файлов vcxproj похоже, что VS_VERSIONINFO может обновлять содержимое, которое вы найдете на вкладке сведений о свойствах файла, но AssemblyInfo.cpp может отображать версию для GetReferencedAssemblies. В C# эти две области отчетности кажутся объединенными. Возможно, есть способ указать AssemblyInfo.cpp каким-то образом распространяться в сведениях о файле, но в конечном итоге я продублирую информацию о сборке в обоих местах на этапе предварительной сборки. Может быть, кто-то может найти лучший подход.

person jxramos    schedule 03.04.2014

До сих пор у меня никогда не было AssemblyInfo.cpp в моих управляемых библиотеках C++, поэтому я не думаю, что это необходимо.

(Я только что добавил файл, чтобы иметь информацию о версии для моих dll С++).

person Sam    schedule 24.01.2011

Почему бы просто не исправить ошибки? На этой ноте, какие ошибки вы получаете?

Этот файл содержит такую ​​информацию, как номер версии, которая определенно необходима для использования созданной вами сборки.

person NotMe    schedule 30.04.2009
comment
Ошибки описаны в stackoverflow. com/questions/810827/ ... насчет того, как файл точно нужен, ну вроде и без него нормально работает?!? - person demoncodemonkey; 01.05.2009
comment
Без этой информации компилятор не может определить, является ли сборка 1. правильной и 2. устаревшей или нет. Проблема, на которую вы ссылаетесь, сводится к несоответствию между сборками сборки. Стерилизуя его, вы больше не получаете ошибку несоответствия, потому что компилятор не может сказать, что есть разница. - person NotMe; 01.05.2009
comment
Так что, по сути, вы не решили проблему. Вместо этого вы просто спрятали это. - person NotMe; 01.05.2009
comment
Я не уверен. С информацией о сборке или без нее, если я внесу существенное изменение в общую DLL, ссылающаяся DLL будет перестроена, а при незначительном изменении ссылающаяся DLL не будет перестроена. Так что я не вижу никакой разницы в этом отношении, кроме того, что бессмысленная ошибка исчезает. - person demoncodemonkey; 01.05.2009