所以我寫了一個需要訪問註冊表的應用程序。 我沒有觸及任何構建設置,希望在添加其他觸摸(如描述或名稱)之前讓它工作。
突然間,我得到一個不會消失的錯誤。 ClickOnce does not support the request execution level 'requireAdministrator'.
現在,我沒有在這個應用程序中觸及ClickOnce。我所做的所有事情都包括一個請求這些權限的清單文件。
我現在的問題是,這個錯誤不會消失,我不能編譯我的程序。有關該做什麼的建議? (旁註:我即將上牀睡覺,所以明天下午我會檢查一下)。「ClickOnce不支持請求執行級別'requireAdministrator'。」
回答
如果你曾經使用發佈嚮導,或「立即發佈」,點擊一次複選框被自動選中...
拿你app.Manifest看看文件,你會看到這一點:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
有在評論中有說明,而只是刪除「requireAdministrator」並插入這是地方解決了這個問題對我來說:
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
我有同樣的問題我通過取消選中「啓用ClickOnce安全設置」來解決此問題 在Visual Studio中查找此選項右鍵單擊您的項目==>屬性==>選擇安全性==>啓用ClickOnce安全性設置(此選項已被選中,因此我取消選中它並解決我的問題)。
我知道這樣一個老問題,但我兩年之後來到這裏,所以:
您可以從項目性質在安全選項卡禁用ClickOnce的幫助的問題;見下圖:
只是
Imports System.security
和 U將得到沒有錯誤,你的申請將被以管理員身份運行
只需簡單地將引用分配給程序集就不會在大多數情況下執行任何代碼。沒有更多的發佈,這沒有告訴我們。這篇文章是關於管理註冊表編輯的要求,更具體地說是通過Visual Studio發佈選項進行部署,該選項生成ClickOnce程序集。 Downvoted由於缺乏清晰度或明顯的相關性。 –
我知道這是舊的,但我碰到它跌跌撞撞尋找尋求答案。在我的情況下,我使用發佈功能,我需要繼續使用它。我也需要訪問管理功能。所以出於這個原因,上面的答案都不適合我。
我最終在我的應用程序開始時添加了一個方法,檢查它是否以管理員身份運行,如果不是,則以管理員身份重新啓動。爲此,您需要添加以下參考。
using System;
using System.Diagnostics;
using System.Reflection;
using System.Security.Principal;
然後你將需要把這個地方,你的主要方法有方便的訪問。我使用的是WPF,所以我將它添加到MainWindow.xaml.cs中,但可以在代碼中的任何地方儘早添加它。只要記得在這些方法中添加「靜態」就可以了。
private void AdminRelauncher()
{
if (!IsRunAsAdmin())
{
ProcessStartInfo proc = new ProcessStartInfo();
proc.UseShellExecute = true;
proc.WorkingDirectory = Environment.CurrentDirectory;
proc.FileName = Assembly.GetEntryAssembly().CodeBase;
proc.Verb = "runas";
try
{
Process.Start(proc);
Application.Current.Shutdown();
}
catch(Exception ex)
{
Console.WriteLine("This program must be run as an administrator! \n\n" + ex.ToString());
}
}
}
private bool IsRunAsAdmin()
{
WindowsIdentity id = WindowsIdentity.GetCurrent();
WindowsPrincipal principal = new WindowsPrincipal(id);
return principal.IsInRole(WindowsBuiltInRole.Administrator);
}
最後,在程序開始時,添加對方法的引用。就我而言,我將它添加到MainWindow中,但將它添加到Main作品中。
public MainWindow()
{
InitializeComponent();
AdminRelauncher(); //This is the only important line here, add it to a place it gets run early on.
}
希望這有助於!
這裏是VB.NET
If Not New WindowsPrincipal(WindowsIdentity.GetCurrent).IsInRole(WindowsBuiltInRole.Administrator) Then
Process.Start(New ProcessStartInfo With { _
.UseShellExecute = True, _
.WorkingDirectory = Environment.CurrentDirectory, _
.FileName = Assembly.GetEntryAssembly.CodeBase, _
.Verb = "runas"})
編輯代碼片段:但是,如果你以這種方式部署,一些AV-軟件模塊的代碼。
- 1. 一個dll的請求執行級別
- 2. 使用QT Creator如何設置執行級別爲requireAdministrator
- 3. Wear級別不支持API級別19?
- 4. WAPT支持請求
- 5. Apache支持請求?
- 6. 批請求支持
- 7. 支持Resume支持的Node.js請求流
- 8. SQLite的Monotouch支持級別
- 9. WebAPI請求流支持
- 10. Windows 10不支持請求方法'HEAD'
- 11. 請求方法「POST」春不支持MVC
- 12. 請求方法 'POST' 不支持
- 13. HTTP/2請求,但推不支持
- 14. Springboot請求方法'POST'不受支持
- 15. POST請求403禁止不被支持
- 16. WCF DataService不支持預檢OPTIONS請求?
- 17. WARN org.springframework.web.servlet.PageNotFound - 不支持請求方法'POST'
- 18. Google BigQuery API不支持http post請求
- 19. SpringMVC請求方法'GET'不支持?
- 20. WCF請求攔截器 - 不再支持?
- 21. 方法不支持請求體:GET
- 22. 不支持異步POST請求
- 23. 請求方法「POST」不支持
- 24. JAX RS POST API不支持HEAD請求
- 25. 不支持請求方法'POST'Spring
- 26. HttpRequestMethodNotSupportedException:請求方法「POST」不支持
- 27. osweb.servlet.PageNotFound:請求方法「POST」不支持
- 28. 請求方法「GET」不支持
- 29. 不支持JavaScript Orbeon 3.9請求
- 30. SpringBoot說:「請求方法‘POST’不支持
我討厭在這裏陳述明顯的問題,但是*你添加了一個請求'requireAdministrator'權限的清單*並且* ClickOnce開始抱怨說它不支持'requireAdministrator' *。問題應該非常清楚。 ClickOnce在您的清單中看到需要提升(這成爲您的應用程序的一部分)。我不確定你在這裏需要什麼...... –
@KenWhite:然而,也許並非完全明顯也不合邏輯,管理要求與點擊一起使用會阻止您編譯項目,而不僅僅是運行它 - 但它確實如此。 –
@ 500-InternalServerError,邏輯應該告訴你,因爲添加「需要管理員」導致它不能編譯,因爲與「需要管理員不支持」,國際海事組織的事實,因果關係存在。 :-) –