2016-09-08 5 views
0

Я много читаю на app.manifest, но я не понимаю. Ну, я действительно нуждаюсь в этом для некоторых вещей, таких как: <requestedExecutionLevel level="asInvoker" uiAccess="false" />, которые нам действительно нужны и используют. Но есть и это:app.manifest и assemblyInfo.cs номера версий и требуется app.manifest?

<assemblyIdentity 
    name="ModuleSimulator" 
    processorArchitecture="*" 
    version="1.0.2.1" 
    type="win32"/> 

И тут приходит часть я не получаю, я могу просто оставить это без каких-либо последствий верно? У нас уже есть AssemblyInfo.cs, который содержит все детали сборки, которая включает в себя версию:

[assembly: AssemblyVersion("1.0.2.2")] 
[assembly: AssemblyFileVersion("1.0.2.2")] 
[assembly: AssemblyInformationalVersion("R165Fv001r02")] 
[assembly: NeutralResourcesLanguageAttribute("en")] 

Мы мужественный таргетинг Windows 7 (в данный момент), но мы могли бы начать поддерживать Windows 10, а также в будущее. Итак, какое использование имеет свойство assemblyIdentity в файле манифеста, если AssemblyInfo.cs гарантирует, что сборка скомпилирована правильно.

Я понимаю, что это было задано раньше, но я просто не понимаю его.

Что я думаю, что я понимаю: App.manifest также используется приложением app-store. приложение. (И, конечно, проверьте, может ли приложение запускаться из-за поддерживаемых версий ОС и уровня выполнения), но я говорю об узле assemblyIdentity, который я не совсем понимаю.

ответ

3

Заявка на участие является чисто неуправляемой деталью. Компилятор C# гарантирует, что он будет внедрен как неуправляемый ресурс в окончательный исполняемый файл. Что-то, что вы можете увидеть при использовании File> Open> File и выбрать EXE-файл.

Он должен быть неуправляемым, поскольку операционная система читает его. Просто дополнительная конфигурация, отличная от того, что может быть сохранено в формате исполняемого файла. Формат, который трудно изменить, слишком много существующих программ, которые обезьяна с исполняемыми файлами будет парализована им.

Вы не должны исключать элемент AssemblyIdentity, документация SDK требует, чтобы в действительном манифеста всегда был один. В противном случае он не будет использоваться в .NET-программе, поскольку он играет определенную роль в поиске неуправляемых библиотек DLL. Таким образом, контент на самом деле не имеет значения, у вас все в порядке с шаблоном, созданным шаблоном элемента.

Операционная система не знает beans об атрибутах .NET, только CLR может их читать. Те, которые вы указали, действительно используются компилятором C#, чтобы создать неуправляемый ресурс. Это ресурс VERSION, вы также видите это, когда смотрите файл EXE. Он заполняет детали листа свойств Details, те, которые вы видите, когда используете Explorer для просмотра свойств файла. Этот ресурс также используется классом .NET FileVersionInfo. Существенный атрибут [AssemblyVersion] не отображается, что является неудобством.

Appx манифест в приложении Store - это совершенно другой чайник из рыбы. Опять неуправляемая деталь, операционная система использует ее, чтобы выяснить, как развернуть пакет приложений магазина на машине пользователя. И как выглядит плитка. И какие возможности ему нужны, имеет значение для песочницы.