البصرية ستوديو في عداد المفقودين "إضافة المثبت" وصلة في مشروع خدمة

StackOverflow https://stackoverflow.com/questions/407459

سؤال

وأنا بناء خدمة Windows وبعد هذا MSDN المقالة ، ولكن أنا عالقة في الخطوة 3 ضمن "إنشاء المثبت". لا أستطيع العثور على وصلة "إضافة المثبت" انها اشارة الى. لقد النقر في كل مكان، بما في ذلك اتباع التعليمات أنه يعطي بالضبط، لكنني لا يمكن أن يبدو للعثور عليه. وكان عدد قليل من الناس على جوجل نفس المشكلة، ولكن لم يتم العثور على حل (ما عدا إضافة الكائن ServiceInstaller وتكوين يدويا).

وقد أي شخص آخر لهذه المشكلة وإيجاد السبب؟ أنا باستخدام VS2008 واستهداف صافي 2.0 إذا كان يهم.

هل كانت مفيدة؟

المحلول

وفي "منطقة رمادية" الذي يتحدثون عنه هو لوحة أوامر من خصائص لوحة خصائص (ليس خطأ مطبعي). ليس من المفيد جدا لذلك ربما كنت قد إيقاف تشغيله، فعلت.

ويمكنك إما إعادة تمكينه بالنقر بزر الماوس الأيمن فوق لوحة خصائص واختيار "أوامر"، أو إضافة مشروع المثبت مباشرة بالنقر بزر الماوس الأيمن فوق طريقة عرض التصميم الخدمة (نافذة تان كبير مع "لإضافة عناصر إلى صفك ... ") واختيار" إضافة المثبت ".

نصائح أخرى

وبالنسبة ل Visual Studio 2012، انقر على الحق في "Services1.cs" وحدد "عرض مصمم" (أو اضغط على مفتاح Shift-F7). ثم انقر بزر الماوس الأيمن على خلفية رمادية للمصمم.

وعندئذ، وعندئذ فقط، سترى بيضة عيد الفصح أن مايكروسوفت قد يختبئ منك كل هذا الوقت: الرابط Add Installer بعيد المنال

لتحصل على ما يصل إلى موعد مع الاستوديو صريحة بصرية جديدة (2015) النسخة:

ويبدو أننا لا يمكن أن يكون هذا "إضافة المثبت" من الطبعة صريحة. ولكن الأمر بسيط للغاية حقا. لكم ببساطة الحاجة لإنشاء فئة وإضافة رمز أدناه.

وكما تحتاج إلى إضافة System.Configuration.Install.dll المرجعية.

using System.Configuration.Install;
using System.ServiceProcess;
using System.ComponentModel;


namespace SAS
{
    [RunInstaller(true)]
    public class MyProjectInstaller : Installer
    {
        private ServiceInstaller serviceInstaller1;
        private ServiceProcessInstaller processInstaller;

        public MyProjectInstaller()
        {
            // Instantiate installer for process and service.
            processInstaller = new ServiceProcessInstaller();
            serviceInstaller1 = new ServiceInstaller();

            // The service runs under the system account.
            processInstaller.Account = ServiceAccount.LocalSystem;

            // The service is started manually.
            serviceInstaller1.StartType = ServiceStartMode.Manual;

            // ServiceName must equal those on ServiceBase derived classes.
            serviceInstaller1.ServiceName = "SAS Service";

            // Add installer to collection. Order is not important if more than one service.
            Installers.Add(serviceInstaller1);
            Installers.Add(processInstaller);
        }
    }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top