Kashif Alvi Ответов: 4

Как добавить файл манифеста в мой проект


Как добавить файл app.manifest в мой проект.
Я использую visual studio 2010.
Я пытался добавить его во многих отношениях, но это не сработало для меня.
один из способов, которым я пытался это сделать:
1. Щелкните правой кнопкой мыши на проекте
2. выберите команду добавить новый элемент
3. Выберите Файл Манифеста Приложения.
Пожалуйста, помогите мне, так как я хочу добавить настройку uac в приложение
И еще одно, что я хочу внести изменения в реестр во время rumtime приложения, но если uac включен в windows vista и Windows 7, он выдает исключение.
можно ли решить эту проблему, добавив файл app.manifest?
Если да, то как я могу развернуть его с помощью своего application.exe

Prasad Khandekar

Пожалуйста, взгляните на эту статью (http://msdn.microsoft.com/en-us/library/ms235229.aspx)

С уважением,

Kashif Alvi

Я сделал все это, но не смог найти "свойства конфигурации" в свойстве проекта.

Prasad Khandekar

Что на самом деле происходит, когда вы выбираете Добавить новый элемент-файл манифеста приложения? Потому что это стандартный способ. Также взгляните на эту дискуссионную тему (http://stackoverflow.com/questions/4084585/how-to-embed-a-manifest-file-at-compile-time-in-visual-studio-2010)

С уважением,

Kashif Alvi

Когда я нажимаю на кнопку Добавить новый элемент, открывается окно, в котором с левой стороны дана древовидная структура, в которой есть категории элемента, который вы хотите добавить.
Я искал все окно, я не мог "файл манифеста приложения", но я получил "файл конфигурации приложения", который уже включен в мой проект.

для получения более подробной информации я могу отправить вам снимки экрана, но если вы предоставите мне свой электронный идентификатор.
Спасибо

Richard MacCutchan

Я не знаю, какую версию Visual Studio вы используете, но в Visual C# Express 2010 я вижу "файл манифеста приложения" среди вариантов выбора. Пример файла, который создается также содержит все варианты для выбора усиленного контроля учетных записей.

Kashif Alvi

Я использую visual studio 2010
И vb .net как язык программирования

Richard MacCutchan

Я не вижу никакой причины, почему бы вам не получить манифест в качестве опции. Можете ли вы загрузить свои скриншоты на какой-нибудь общий сайт, чтобы мы могли точно видеть, что вы видите?

Kashif Alvi

Я загрузил 5 снимков экрана пожалуйста взгляните на него:
1. http://imageshack.us/a/img69/2096/9ufq.png
2. http://imageshack.us/a/img199/6567/tlwa.png
3. http://imageshack.us/a/img59/9616/9s8n.png
4. http://imageshack.us/a/img441/2634/hmnb.png
5. http://imageshack.us/a/img22/1474/azi4.png

Richard MacCutchan

Самое странное; я думаю, вам придется сделать это вручную из информации в ссылке, которую я предоставил ниже.

4 Ответов

Рейтинг:
12

Kashif Alvi

В visual studio 2010 я создал новый проект и добавил все формы (только формы) из старого проекта в свой новый проект.
Теперь, когда все сделано и все ошибки решены, я построил свой проект и запустил его, он работал нормально.
Теперь, когда я нашел в интернете, чтобы изменить trustinfo от "ключ asinvoker" к "функции requireadministrator" в приложении.файл манифеста. Я понял, что нет необходимости открывать app.manifest из Обозревателя решений. Он создается при первом вызове и открывается после этого всякий раз, когда мы нажимаем на кнопку Просмотр настроек Windows в свойстве проекта на вкладке приложение. Теперь, когда создается файл app.manifest, который изначально выглядит следующим образом

<asmv1:assembly manifestversion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <assemblyidentity version="1.0.0.0" name="MyApplication.app" />
  <trustinfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedprivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <!-- UAC Manifest Options
            If you want to change the Windows User Account Control level replace the 
            requestedExecutionLevel node with one of the following.

        <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
        <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
        <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />

            Specifying requestedExecutionLevel node will disable file and registry virtualization.
            If you want to utilize File and Registry Virtualization for backward 
            compatibility then delete the requestedExecutionLevel node.
        -->
        <requestedexecutionlevel level="asInvoker" uiaccess="false" />
      </requestedprivileges>
    </security>
  </trustinfo>
  
  <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
    <application>
      <!-- A list of all Windows versions that this application is designed to work with. Windows will automatically select the most compatible environment.-->

      <!-- If your application is designed to work with Windows 7, uncomment the following supportedOS node-->
      <!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>-->
      
    </application>
  </compatibility>
  
  <!-- Enable themes for Windows common controls and dialogs (Windows XP and later) -->
  <!-- <dependency>
    <dependentAssembly>
      <assemblyIdentity
          type="win32"
          name="Microsoft.Windows.Common-Controls"
          version="6.0.0.0"
          processorArchitecture="*"
          publicKeyToken="6595b64144ccf1df"
          language="*"
        />
    </dependentAssembly>
  </dependency>-->

</asmv1:assembly>


Просто измените эту строку
<requestedexecutionlevel level="asInvoker" uiaccess="false" />

до настоящего времени
<requestedexecutionlevel level="requireAdministrator" uiaccess="false" /> 

и УР закончил.
Там нет необходимости добавлять какой-либо файл из любого места. Он отлично работает на моей visual studio 2010 SP1.


Surreal One

Всем привет.

Есть ли способ добавить файл манифеста в проект Visual C++ 2015? В настоящее время я пытаюсь вдохнуть жизнь в свой проект, который я прекратил разрабатывать в 2003 году, но решение Дейва Кресковяка, похоже, больше не работает.

Jayanta Modak

Спасибо Сэр

Рейтинг:
0

Dave Kreskowiak

Вы не идете в проект -> Свойства. Все это входит в манифест, который вы добавляете в свой проект!

Щелкните правой кнопкой мыши проект в обозревателе решений, выберите пункт Добавить, а затем новый элемент. В появившемся диалоговом окне найдите файл манифеста приложения и нажмите на него, а затем нажмите кнопку Добавить. Файл будет создан в вашем проекте под именем app.manifest.

Откройте этот файл и внесите необходимые изменения.


Рейтинг:
0

Richard MacCutchan

Видеть http://msdn.microsoft.com/en-us/library/bb756929.aspx[^].


Member 11546513

Привет, я хочу включить порт брандмауэра программно в c# asp.net.

веб.код конфигурации :
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<безопасность>
&ЛТ;requestedprivileges префиксом xmlns="урна:схим-Майкрософт-com:АСМ.В3"и GT;
<!-- Манифест параметры контроля учетных записей
Если вы хотите изменить уровень контроля учетных записей пользователей Windows замените
узел requestedExecutionLevel с одним из следующих параметров.

&ЛТ;уровень requestedexecutionlevel="значение asinvoker" для uiaccess="false" - в&ГТ;
&ЛТ;уровень requestedexecutionlevel="функции requireadministrator" uiaccess уровня="ложно"и GT;
&ЛТ;уровень requestedexecutionlevel="значение highestavailable" для uiaccess="false" - в&ГТ;

Указание узла requestedExecutionLevel отключит виртуализацию файлов и реестра.
Если вы хотите использовать виртуализацию файлов и реестров для обратной работы
совместимость затем удалите узел requestedExecutionLevel.
-->

&ЛТ;уровень requestedexecutionlevel="значение asinvoker" для uiaccess="false" - в&ГТ;

</trustInfo>


.cs-код:

частная btnfire_Click недействительным(объект отправителя, EventArgs в электронной)
{
Process proc = новый процесс();
струнный верх = "netsh.exe";
тез.Докл.Информацию.Аргументы = "Брандмауэр установить opmode enable";
тез.Докл.Информацию.Именем = топ;
тез.Докл.Информацию.Значение свойства useshellexecute = false в;
proc.StartInfo.RedirectStandardOutput = true;
тез.Докл.Информацию.CreateNoWindow = true;
тез.Докл.Начать();
процесс.WaitForExit();
}
Я получаю ошибку, показанную в приведенной ниже строке.
Ошибка 8 нераспознанный раздел конфигурации trustInfo. C:\Users\MNKPC-02\Documents\Visual Studio 2013\WebSites\FirewallSettings\Web.config 14

Richard MacCutchan

Какое это имеет отношение к данному вопросу?

Рейтинг:
0

Member 14559608

скачайте и распакуйте https://github.com/eladkarako/manifest/archive/master.zip,
При необходимости отредактируйте (только с помощью Notepad++ или Notepad2) манифест по умолчанию (generic.manifest),
приведем несколько примеров. Убедитесь, что у вас всегда есть Windows-EOL (\r\n) и один пробел-символ перед концом строки, Не используйте символы табуляции.

Перетащите свой exe-файл или dll-файл add_manifest.cmd,
он будет переопределять встроенное, существующее содержимое манифеста с содержимым generic.manifest).

Вы также можете использовать параллельный манифест,
это файл манифеста, помещенный в ту же папку, что и exe-файл.
Перетащите exe/dll на экран copy_manifest.cmd для более легкого копирования (вы также можете скопировать generic.manifest вручную).

Обратите внимание, что параллельный манифест ничего не значит, если в exe/dll уже есть встроенный манифест, поскольку по умолчанию Windows всегда будет предпочитать сначала встроенный манифест, а не файл манифеста в той же папке.

Чтобы изменить предпочтение Windows side-by-side manifest в пользу внешнего файла, а не встроенного манифеста в exe-файле,
вам нужно применить исправление реестра и перезагрузить компьютер.
исправление реестра для предпочитающих бок-о-бок за внедренного ресурса.

Вы также можете удалить встроенный манифест.
Вы можете манипулировать встроенными данными (конечно же, dot.net apps, а также) с http://www.angusj.com/resourcehacker/#download, хотя я советую не редактировать сам манифест с его помощью и вместо этого использовать предоставленное решение, которое использует официальный mt.exe - Microsoft Manifest Tool (который сохраняет содержимое файла манифеста, такое как пробелы, и правильно записывает ресурсы двоичного блока. Если вы используете resource-hacker для редактирования манифеста, вы можете получить поврежденный встроенный манифест (..что-то вроде того, что может свести вас с ума), но вы можете безопасно удалить встроенный ресурс манифеста вместе с ним, если захотите.


OriginalGriff

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