"ক্লিকঅনস অনুরোধ সম্পাদন স্তরের 'প্রয়োজনীয় প্রশাসককে সমর্থন করে না'।


95

সুতরাং আমি একটি অ্যাপ্লিকেশন লিখছিলাম যা রেজিস্ট্রি অ্যাক্সেস প্রয়োজন। আমি কোনও বিল্ড সেটিংস স্পর্শ করিনি, আমি অন্যান্য স্পর্শ যুক্ত করার আগে যেমন বিবরণ বা নাম যুক্ত করার আগে জিনিসটি কাজ করতে চাইছিলাম।

নীল থেকে, আমি একটি ত্রুটি পাই যা দূরে যাবে না। ClickOnce does not support the request execution level 'requireAdministrator'.এখন, আমি এই অ্যাপ্লিকেশনটিতে ক্লিকঅনস স্পর্শ করিনি। আমি যা করেছি তা হ'ল এই অনুমতিগুলির জন্য একটি মেনিফেস্ট ফাইল অন্তর্ভুক্ত ছিল।

আমার সমস্যা এখন এই ত্রুটিটি চলে যাবে না এবং আমি আমার প্রোগ্রামটি সংকলন করতে পারছি না। কি করতে হবে তা কোন পরামর্শ? (পার্শ্ব নোট: আমি বিছানায় যাব, তাই আমি আগামীকাল বিকেলে এটি পরীক্ষা করব))


4
আমি এখানে সুস্পষ্ট রাষ্ট্র ঘৃণা, কিন্তু আপনি একটি স্পষ্ট অনুরোধ যোগ requireAdministratorঅনুমতি এবং ClickOnce অভিযোগ এটি সমর্থন করে না শুরুrequireAdministrator । সমস্যাটি অত্যন্ত স্পষ্ট হওয়া উচিত। ক্লিকঅনস আপনার ম্যানিফেস্টে উন্নয়নের প্রয়োজনীয়তা দেখছে (যা আপনার আবেদনের অংশ হয়ে যায়)। আপনার এখানে আরও কী প্রয়োজন তা আমি নিশ্চিত নই ...
কেন হোয়াইট

4
@ কেনহাইট: এটি অবশ্য পুরোপুরি সুস্পষ্ট বা যৌক্তিক নয় যে ক্লিকের সাথে অ্যাডমিনের প্রয়োজনীয়তা আপনাকে একবারে প্রকল্পটি সঙ্কলন করতে বাধা দেয় , কেবল এটি পরিচালনা করে না - তবে তা করে।
500 - অভ্যন্তরীণ সার্ভার ত্রুটি

@ 500-অভ্যন্তরীণ সার্ভারেরর, যুক্তি আপনাকে বলা উচিত যে একটি কার্যকরী সম্পর্ক কেবলমাত্র "অ্যাডমিনের প্রয়োজন" যুক্ত করার কারণে এটি "প্রশাসনের প্রয়োজন হয় না সমর্থিত", আইএমওর সাথে কিছু করার কারণে এটি সংকলন না করার কারণেই উপস্থিত হয়। :-)
কেন হোয়াইট

4
সমস্যাটি হ'ল আমি ক্লিকঅনস এবং প্রশাসকের অনুমতিগুলি ব্যবহার করতে চাই না, সমস্যাটি হ'ল আমি প্রশাসকের অনুমতি ব্যবহার করতে চাই এবং এটি পূর্বে (প্রায় 10 বার) সংকলন করেছি, তবে এবার ক্লিকঅনস বলছে এটি বেমানান।
এলএমএস

10
@ কেনভাইট সমস্যাটি আপনার পরামর্শ অনুসারে পরিষ্কার নয়। সমস্যাটি তখন ঘটে যখন আপনি "প্রকাশ করুন" বোতামটি ক্লিক করেন (কমপক্ষে এটি আমার জন্য হয়েছিল)। আমি ম্যানিফেস্ট এবং নির্বাচিত "প্রয়োজনীয় প্রশাসক" নির্বাচন করেছি, এর পরে প্রোগ্রামটি নির্দোষভাবে কাজ করেছিল। আমি যখন প্রকাশিত ক্লিক করেছি কেবল তখনই আমি এই ত্রুটি পাওয়া শুরু করেছি, এবং সেটিংসে না গিয়ে "ক্লিকঅনস" অক্ষম না করা পর্যন্ত এটিকে সাফ করতে পারিনি। সুতরাং সমাধানটি "প্রয়োজনীয়তা প্রশাসক" সমর্থিত নয়, তবে "ক্লিকঅনস" সক্ষম করা যায় না এবং আপনার যদি "প্রয়োজনীয়তা প্রশাসক" সেট থাকে তবে আপনি "প্রকাশনা" ক্লিক করতে পারবেন না।
গ্যাভিন কোটস

উত্তর:


148

সম্পাদনা করুন: এই মন্তব্যটিও একটি ভাল উত্তর দেয়।

আপনি যখনই "প্রকাশনা" ক্লিক করেন একবার ক্লিক করুন সক্ষম হয়ে উঠবে, আপনি এটি চান বা না করুন! আপনি যদি "আবশ্যক অ্যাডমিনিস্ট্রেটর" ব্যবহার করেন তবে মনে হয় আপনি ক্লিকঅনস ব্যবহার করতে পারবেন না, এবং তাই আপনার প্রকল্পটি "প্রকাশ" করতে পারবেন না।


মূল:

সিকিউরিটি ট্যাবটির নীচে, "ক্লিক অন সিকিউরিটি সেটিংস সক্ষম করুন" চেক করা হয়েছিল Turn যদিও আমি এটি পরীক্ষা করেছিলাম না। যাইহোক, অনিচ্ছুক হয়ে যাওয়া ক্লিকঅনস আমাকে ত্রুটি প্রদান বন্ধ করে দিয়েছে। এটি খুঁজতে কিছুটা সময় নিয়েছে ...


4
আহ, আমি ভেবেছিলাম যে আপনি পেয়েছেন এমন ত্রুটি বার্তাটি থেকেই তা স্পষ্ট ছিল;)
500 - অভ্যন্তরীণ সার্ভার ত্রুটি

4
যা আমাকে বিভ্রান্ত করেছিল তা হ'ল আমি ক্লিকঅনস সক্ষম করিনি।
এলএমএস

ভাল প্রশ্নোত্তর, এটি আমাকে সাহায্য করেছে, ধন্যবাদ!
মোহ

29
আপনি যখনই "প্রকাশনা" ক্লিক করেন একবার ক্লিক করুন সক্ষম হয়ে উঠবে, আপনি এটি চান বা না করুন! আপনি যদি "প্রয়োজনীয়তা প্রশাসক" ব্যবহার করেন তবে মনে হয় আপনি ক্লিকঅনস ব্যবহার করতে পারবেন না এবং তাই আপনার প্রকল্পটি "প্রকাশ" করতে পারবেন না।
গ্যাভিন কোটস

4
@ গ্যাভিনকোয়েটস যা বলেছে তা সঠিক। কারণটি হ'ল ক্লিকঅনস অ্যাপ্লিকেশনগুলি সর্বদা এর AppDataফোল্ডারে ব্যবহারকারী প্রতি ইনস্টল থাকে । সুবিধাগুলি উন্নতিতে ব্যবহারকারী প্রসঙ্গের স্যুইচ হতে পারে যেখানে ক্লিকঅনস অ্যাপ্লিকেশন এমনকি ইনস্টল করা নেই।
বার্টল

44

আমি এটি একটি পুরানো প্রশ্ন জানি কিন্তু আমি দুই বছর পরে এখানে এসেছি:

সমস্যাটি সহায়তা করতে আপনি প্রকল্পের যথাযথগুলিতে সুরক্ষা ট্যাব থেকে ক্লিককঅনস অক্ষম করতে পারেন; নিচে দেখ:

এখানে চিত্র বর্ণনা লিখুন


4
এবং আপনি যখন আপনার অ্যাপ্লিকেশন প্রকাশ করবেন তখন এই চেকবক্সটি আবার চেক করা হবে।
dikkini

@ ডিক্কিনি, ঠিক! কীভাবে এটি অক্ষম করবেন, কারও একটি উত্তর আছে?
saidfagan

@ সাইদফাগান এই মামলার কোনও উত্তর বা সমাধান নেই। আমি এক্স ও ডিএল ফাইলগুলি একত্রিত করতে ইউলমার্জ ব্যবহার করি।
ডিক্কিনি

এটি আমার পক্ষে কাজ করে, যদি আমাকে চেকবাক্সটি সবসময় অক্ষম করতে হয় তবে তাতে কিছু আসে যায় না
অধ্যাপক জুম

18

আপনি যদি কখনও প্রকাশনা উইজার্ড বা 'এখনই প্রকাশ করুন' ব্যবহার করেন তবে একবার ক্লিক করার চেকবক্সটি স্বয়ংক্রিয়ভাবে নির্বাচিত হয়ে যায় ...


16

আমি জানি এটি পুরানো তবে আমি উত্তর খুঁজতে গিয়ে এটিকে হোঁচট খেয়েছি। আমার ক্ষেত্রে, আমি প্রকাশিত ফাংশনটি ব্যবহার করছি এবং এটি ব্যবহার করা আমার দরকার need আমার অ্যাডমিন সক্ষমতার অ্যাক্সেসও প্রয়োজন। সুতরাং যে কারণে, উপরের উত্তরগুলির কোনওটিই আমার পক্ষে কার্যকর হয়নি।

আমি আমার অ্যাপ্লিকেশনটির একেবারে শুরুতে একটি পদ্ধতি যুক্ত করেছি যা এটি প্রশাসক হিসাবে চালিত হচ্ছে কিনা তা পরীক্ষা করে এবং যদি তা না হয় তবে নিজেকে অ্যাডমিন হিসাবে পুনরায় চালু করুন unch এটি করার জন্য, আপনাকে নিম্নলিখিত রেফারেন্স যুক্ত করতে হবে।

using System;
using System.Diagnostics;
using System.Reflection;
using System.Security.Principal;

তারপরে আপনার এটির এমন কোনও জায়গা রাখতে হবে যা আপনার মূল পদ্ধতিতে অ্যাক্সেসযোগ্য y আমি ডাব্লুপিএফ ব্যবহার করছি তাই আমি এটিকে মেইনওয়াইন্ডো.এক্স্যামল সি-এ যুক্ত করেছি তবে আপনি এটি আপনার কোডের প্রথম দিকে যেকোন জায়গায় যুক্ত করতে পারেন। আপনার যদি প্রয়োজন হয় তবে এই পদ্ধতিগুলিতে "স্থির" যুক্ত করতে মনে রাখবেন।

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.
}

আশাকরি এটা সাহায্য করবে!


এটি একটি নতুন উদাহরণ শুরু করে, যা সংজ্ঞায়িত করে ডিবাগারের সাথে সংযুক্ত থাকে না .. (আপনি নতুন ফ্রি (সংযুক্ত না হওয়া) উদাহরণটি কল করেন এবং ডিবাগারের সাথে সংযুক্ত
একটিটি

4
@deadManN খুব সত্য। আমি এটি প্রায় পেয়েছিলাম যেহেতু আমার ঠিক সময়ে পৌঁছানোর সময় পর্যন্ত আমার ডিবাগারের প্রয়োজন হয়নি তবে আমি মনে করি আপনি অ্যাডমিন হিসাবে ভিএস চালাতে পারেন এবং তারপরে প্রোগ্রামটি অ্যাডমিন মোডেও চালু করা হবে। পুনঃসূচনাটি এড়িয়ে চলেছে। আমি এটা পরীক্ষা করতে হবে।
টাইলার সি

4
এতে কারও পক্ষে হোঁচট খাচ্ছে, উপরোক্ত বাস্তবিকই কাজ করে।
টাইলার সি

>> বর্তমান প্রসঙ্গে 'অ্যাপ্লিকেশন' নামটি বিদ্যমান নেই। ত্রুটি
ভি

এই কোডটি কেবল নতুন প্রক্রিয়া শুরু করে তবে আমার অ্যাপ্লিকেশনটি কনসোল যাতে যুক্তি খালি ছেড়ে যায়।
Vee

5

এই ক্রিয়াটি "ক্লিক অন সিকিউরিটি সেটিংস সক্ষম করুন" (যেহেতু যেমন একটি প্রকাশের সময় "চেক করা যায় না" যেমন বলা হয়েছে) নির্বাচন করে এবং তারপরে "এটি একটি আংশিক আস্থা অ্যাপ্লিকেশন" নির্বাচন করে অর্জন করা যেতে পারে। "লোকাল ইন্ট্রানেট" ড্রপ-ডাউন মেনুতে স্বয়ংক্রিয়ভাবে নির্বাচিত হবে যা পুরোপুরি ঠিক আছে।

আপনার পরিবর্তনগুলি সংরক্ষণ করুন, অ্যাপ্লিকেশনটি প্রকাশ করুন, স্কিড করুন। :-)সুরক্ষা সেটিংস স্নিপেট


2

আপনার অ্যাপ্লিকেশনটিতে একবার দেখুন M ম্যানিফেস্ট ফাইল এবং আপনি এটি দেখতে পাবেন:

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

মন্তব্যগুলিতে সেখানে নির্দেশাবলী রয়েছে, তবে কেবল "প্রয়োজনীয় প্রশাসক" মুছে ফেলা এবং এটি সন্নিবেশ করানোই আমার জন্য সমস্যাটি সমাধান করার জায়গাটি:

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

4
ওপি বলেছেন যে তাদের প্রয়োগে রেজিস্ট্রিটিতে তাদের অ্যাক্সেস প্রয়োজন, সুতরাং এটি কোনও বিকল্প নয়।
লিক্যাম্বল

requireAdministratorরেজিস্ট্রি লিখতে অধিকার প্রয়োজন, সুতরাং এটি একটি প্রয়োজন হবে।
স্কিশার্প


2

আমার একই সমস্যা রয়েছে আমি " ক্লিকঅনস সুরক্ষা সেটিংস সক্ষম করুন" আনচেক করে এটি সমাধান করেছি ভিজ্যুয়াল স্টুডিওতে এই বিকল্পটি সন্ধান করতে আপনার প্রকল্পের উপর ক্লিক করুন ==> বৈশিষ্ট্য ==> সুরক্ষা নির্বাচন করুন ==> ক্লিকঅনস সুরক্ষা সেটিংস সক্ষম করুন (এই বিকল্পটি ছিল ইতিমধ্যে চেক করেছি তাই আমি এটি পরীক্ষা করে নিই এবং আমার সমস্যার সমাধান হবে)।


2

ভিবি.এনইটি-র কোড স্নিপেট এখানে

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"})

সম্পাদনা: তবে আপনি যদি এই পদ্ধতিতে স্থাপন করেন তবে কিছু এভি-সফ্টওয়্যার আপনার কোডটি ব্লক করে।


1

যারা "চেক ক্লিক করে অন সুরক্ষা সেটিংস সক্ষম করুন" চেক করেন না তাদের ব্যবহার করে, আমার যে পদ্ধতিটি খুঁজে পেয়েছে তা চেষ্টা করে দেখতে পারেন।

প্রথমে আপনার অ্যাপ্লিকেশনটি ছেড়ে দিন E

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

এবং তারপরে আপনি আপনার প্রোগ্রামের ফাইলগুলি এইভাবে সম্পাদনা করুন:

using System;
using System.Diagnostics;
using System.Reflection;
using System.Security.Principal;
using System.Windows.Forms;

মূল পদ্ধতিটি পুনর্গঠন করুন:

    static void Main()
        {
            var wi = WindowsIdentity.GetCurrent();
            var wp = new WindowsPrincipal(wi);

            bool runAsAdmin = wp.IsInRole(WindowsBuiltInRole.Administrator);

            if (!runAsAdmin)
            {
                // It is not possible to launch a ClickOnce app as administrator directly,
                // so instead we launch the app as administrator in a new process.
                var processInfo = new ProcessStartInfo(Assembly.GetExecutingAssembly().CodeBase);

                // The following properties run the new process as administrator
                processInfo.UseShellExecute = true;
                processInfo.Verb = "runas";

                // Start the new process
                try
                {
                    Process.Start(processInfo);
                }
                catch (Exception)
                {
                    // The user did not allow the application to run as administrator
                    MessageBox.Show("Sorry, but I don't seem to be able to start " + 
                       "this program with administrator rights!");
                }

                // Shut down the current process
                Application.Exit();
            }
            else
            {
                // We are running as administrator
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1());
            }
        }

এটি উইন্ডোজ 10 এবং ভিজ্যুয়াল স্টুডিও 2019 এ কাজ করে!


1

যার মধ্যে এটি চালিয়ে যায়, আমি ভেবেছিলাম যে আমি আমার জন্য কাজ করে যা অবদান রাখব।

হাঁ, বিকল্প স্বয়ংক্রিয়ভাবে 'ClickOnce নিরাপত্তা সেটিংস সক্ষম করুন' পুনরায় চেক করা হয়, যদি আপনি এটি আন-চেক করুন, যখন আপনি কি > বিল্ড প্রকাশ করুন

আমার জন্য, আমাকে 'প্রকাশ' করার দরকার নেই - এটি একটি সহজ, পোর্টেবল .এক্সি যা আমার ব্যবহারকারীদের জন্য নির্ধারিত কাজগুলি তৈরি করে এবং প্রশাসক হিসাবে লগ ইন হওয়া সত্ত্বেও আমার এটি নিশ্চিত করা দরকার।

তাই আমি সবেমাত্র আমার সর্বশেষ .exe \ বিন \ রিলিজ থেকে পেয়েছি এবং এটিই আমার ক্লায়েন্টদের সিস্টেমে স্থাপন করা হয়েছে।

প্রত্যাশার মতো ঠিক কাজ করেছে - যেমন যখন আমি এটি কোনও সিস্টেম ডাব্লু / ইউএসি সক্ষম / তার সর্বোচ্চ সেটিংয়ে রাখি তখন .exe এর উপর 'ঝাল' থাকে এবং যখন আমি এটি চালান, এমনকি প্রশাসক হিসাবে লগ ইন থাকা অবস্থায়ও, এটি উন্নত হয় এবং আমি ইউএসি প্রম্পট পাই।

আমার ছোট্ট টাস্ক শিডিয়ুলার অ্যাপটি 'অ্যাক্সেস অস্বীকৃত' ত্রুটি না পেয়ে এখন টাস্কটি তৈরি করতে সক্ষম হয়েছে (যা আগে কেবলমাত্র .exe রাইট ক্লিক করে এবং প্রশাসক হিসাবে রান ক্লিক করুন) কাজ করা যেতে পারে।


4
আমার ঠিক একই সমস্যা ছিল এবং উপরের উত্তরগুলির কোনওটিরই কাজ হয়নি। আমি আশা করি তারা একবার সুরক্ষা সেটিংস এ ক্লিক ক্লিক করুন। বেশিরভাগ ক্ষেত্রে একেবারে প্রয়োজনীয় এবং একটি ভাল বৈশিষ্ট্য, বিশেষত অ্যাপ্লিকেশনগুলি অনলাইনে প্রকাশিত হওয়ার জন্য, তবে আমি কেবল স্থানীয় ভিত্তিক প্রকাশনাগুলির জন্য আরও ভাল বিকল্প / কাজ করার আশা করি।
স্কিশার্প

-12

ঠিক

Imports System.security

এবং ইউ কোনও ত্রুটি পাবেন না এবং আপনার অ্যাপ্লিকেশন অ্যাডমিন হিসাবে চালিত হবে


4
কেবলমাত্র কোনও সমাবেশে একটি রেফারেন্স বরাদ্দ করা বেশিরভাগ ক্ষেত্রেই কোনও কোড কার্যকর করে না। আরও পোস্ট করা ছাড়া এটি আমাদের কিছুই বলে না। এই পোস্টটি প্রশাসনিক রেজিস্ট্রি সম্পাদনার প্রয়োজনীয়তার সাথে সম্পর্কিত এবং ভিজুয়াল স্টুডিও প্রকাশের বিকল্পের মাধ্যমে আরও নির্দিষ্টভাবে মোতায়েন করা হয়েছে যা একটি ক্লিকঅনস সমাবেশ জেনারেট করে। স্পষ্টতার অভাব বা আপাত প্রাসঙ্গিকতার জন্য বঞ্চিত।
অ্যান্টনি ম্যাসন

এই ... এটি একটি না। এটি আপনার লাইনের সংখ্যা বাড়িয়ে নেওয়া ছাড়া একেবারেই কিছুই করবে না 1. পূর্ববর্তী মন্তব্য মত মত।
স্কিশার্প
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.