मुझे पता है कि यह पुराना है, लेकिन मैं इसके जवाब की तलाश में लड़खड़ा गया। मेरे मामले में, मैं प्रकाशित फ़ंक्शन का उपयोग कर रहा हूं और मुझे इसका उपयोग करते रहने की आवश्यकता है। मुझे व्यवस्थापक क्षमताओं तक पहुंच की भी आवश्यकता है। तो इस कारण से, ऊपर दिए गए किसी भी उत्तर ने मेरे लिए काम नहीं किया।
मैंने अपने एप्लिकेशन के बहुत शुरुआत में एक विधि को जोड़ना समाप्त कर दिया है जो यह जांचता है कि क्या यह एक व्यवस्थापक के रूप में चलाया जा रहा है और यदि यह नहीं है, तो अपने आप को एक व्यवस्थापक के रूप में पुन: लॉन्च करें। ऐसा करने के लिए, आपको निम्नलिखित संदर्भों को जोड़ा जाना चाहिए।
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()
{
try
{
WindowsIdentity id = WindowsIdentity.GetCurrent();
WindowsPrincipal principal = new WindowsPrincipal(id);
return principal.IsInRole(WindowsBuiltInRole.Administrator);
}
catch (Exception)
{
return false;
}
}
अंत में, अपने कार्यक्रम की शुरुआत में, विधि का संदर्भ जोड़ें। मेरे मामले में, मैंने इसे मेनविंडो में जोड़ दिया लेकिन इसे मेन वर्क्स में भी जोड़ा।
public MainWindow()
{
InitializeComponent();
AdminRelauncher(); //This is the only important line here, add it to a place it gets run early on.
}
उम्मीद है की यह मदद करेगा!
requireAdministrator
अनुमति देने का अनुरोध किया है और ClickOnce ने शिकायत करना शुरू कर दिया है कि यह समर्थन नहीं करता हैrequireAdministrator
। समस्या अत्यंत स्पष्ट होनी चाहिए। ClickOnce आपके प्रकट में उन्नयन की आवश्यकता को देख रहा है (जो आपके आवेदन का हिस्सा बन जाता है)। मुझे यकीन नहीं है कि आपको यहां और क्या चाहिए ...