簡體   English   中英

如何在 Visual Studio 2019 中將清單文件添加到我的 C# 程序?

[英]How to add a manifest file to my C# program in Visual Studio 2019?

我有一個簡單的應用程序,我想強制以管理員模式運行。 為此,我需要編輯清單文件。 我看到教程顯示通過單擊“項目->添加->新項目”來添加它,但那里沒有清單文件。

我嘗試制作自己的文件(並從項目屬性中將其設置為清單文件),但我不知道在那里寫什么,所以它不會崩潰。

清單文件丟失

這是一個應該有效的分步“hack”; 它允許您獲取默認嵌入式清單的副本並相應地對其進行修改。

首先,通過“Add -> New Item...”命令將新的 XML 文件添加到您的項目中,並將其命名為(例如)“Elevate.xml”。 這最終將成為自定義清單。

接下來,要獲取當前(嵌入式)清單,(重新)構建您的項目並從 Visual Studio 中打開目標 (.exe) 文件。 應該以“資源瀏覽器”模式打開該文件,類似於下圖:

在此處輸入圖像描述

在該資源管理器中,打開“RT_MANIFEST”節點並雙擊顯示的“1(中性)”子節點; 這將打開一個新的 window,程序的嵌入式當前(默認)清單顯示為二進制資源。 清單實際上是 XML 文本格式,您可以 select 最右邊一列的文本(忽略一些前導/尾隨的不可打印數據),如下所示:

在此處輸入圖像描述

復制該選擇,打開您之前的“Elevate.xml”文件,刪除其所有現有內容並“粘貼”清單資源數據; 這將為您提供類似於如下所示的內容:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <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">
        <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
      </requestedPrivileges>
    </security>
  </trustInfo>
</assembly>

然后,您可以將“asInvoker”級別更改為“highestAvailable”,保存該文件並將其(在項目樹中)重命名為“Elevate.manifest”。 然后,您可以 select 在項目的屬性中自定義清單:

在此處輸入圖像描述

我已經在本地(但非常簡單)示例程序上測試了這種方法,它似乎有效:當我運行程序時,系統確實要求我提供管理員憑據。 如果您有任何問題,那么您的情況可能需要進行一些小的調整。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM