سؤال
وهذا قد يكون السؤال ساذجا. لدي لتحرير ملف .WXS يدويا لجعله دعم ميزات محددة من سطر الأوامر.
وعلى سبيل المثال، هناك 3 الميزات في ملف .WXS.
<Feature Id="AllFeature" Level='1'>
<Feature Id="Feature1" Level='1'> </Feature>
<Feature Id="Feature2" Level='1'> </Feature>
<Feature Id="Feature3" Level='1'> </Feature>
</Feature>
والآن، سأقوم بتحديد ملامح من سطر الأوامر. أقول، إذا كنت اكتب "MSIEXEC / ط install.msi ميزة = A"، ثم "Feature1" و "Feature2" يتم تثبيت. إذا كنت اكتب "MSIEXEC / ط install.msi ميزة = B"، ثم "Feature1" و "Feature3" تم تثبيته. في هذه الحالة، وخرائط "A" إلى ميزة 1 و 2؛ "B" خرائط إلى ميزة 1 و 3.
وكيفية تحقيق ذلك في WIX؟
المحلول
وأود أن تغيير Feature1، Feature2 وFeature3 إلى مكونات، ثم سوف يعلن شيئا من هذا القبيل:
<Feature Id="FEATUREA" Title="Super" Level="1" >
<ComponentRef Id="Component1" />
<ComponentRef Id="Component2" />
</Feature>
<Feature Id="FEATUREB" Title="Super1" Level="1" >
<ComponentRef Id="Component1" />
<ComponentRef Id="Component3"/>
</Feature>
وثم تثبيت إما FeatureA أو FeatureB
msiexec /i install.msi ADDLOCAL=[FEATUREA | FEATUREB]
نصائح أخرى
والجواب المقبول يذكر بالفعل خاصية ADDLOCAL، ولكن يبدو ان هذا يعني أنه يمكنك تحديد ميزة واحدة فقط. يمكنك فعلا تحديد ميزات متعددة تفصل بينها بفواصل مثل هذا:
msiexec /i install.msi ADDLOCAL=Feature1,Feature2
أو
msiexec /i install.msi ADDLOCAL=Feature2,Feature3
وتلميح آخر: يمكنك اكتشاف هذه الأسماء الميزة عن طريق فتح أس مع <لأ href = "http://msdn.microsoft.com/en-us/library/windows/desktop/aa370557(v=vs.85) .aspx اتصال "يختلط =" noreferrer "> أرك . وهذا مفيد جدا عندما تريد استخدام هذه الحيل لخلق الإطلاق الذي يثبت ميزات معينة من حزم MSI الأطراف الثالثة.
وهناك عدد من الخصائص التي يمكن التحكم في تثبيت الدول من الميزات. تحقق من هذه الوثائق MSI SDK وصلات من ذلك: HTTP: //msdn.microsoft.com/en-us/library/aa367536(VS.85).aspx