كيف يمكنني إضافة سمات وعناصر من جديد namepace في Wix وتجاهل من قبل Wix?

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

  •  05-07-2019
  •  | 
  •  

سؤال

أريد أن أضيف لا علاقة لها سمة في Wix وكسس الملف وتريد Wix تجاهل ذلك.

حاليا تبرزها الخطأ التالية كما يذهب يبحث عن التمديد.

عنصر مكون يحتوي على معالج امتداد السمة 'myns:myattr'.الرجاء التأكد من أن امتداد الصفات فيhttp://tempuri.org/myschema.xsd'مساحة قدمت.

روب بوب أو أي شخص على wix فريق الاستماع!!:)

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

المحلول

كتابة wix امتداد الذي يتعامل مع عناصر في مساحة اسم XML.المثال التالي امتداد سوف يسبب أي عناصر في مساحة الاسم http://www.example.com لا يمكن تجاهله:

حفظ التعليمات البرمجية التالية في mywixext.cs:

using System.Xml.Schema;
using Microsoft.Tools.WindowsInstallerXml;
using System.Xml;

[assembly: AssemblyDefaultWixExtension(
   typeof(mywixext.IgnoreNamespaceWixExtension))]

namespace mywixext
{

   public class IgnoreNamespaceWixExtension : WixExtension
   {
      public override CompilerExtension CompilerExtension
      {
         get
         {
            return new IgnoreNamespaceCompilerExtension();
         }
      }
   }

   public class IgnoreNamespaceCompilerExtension : CompilerExtension
   {
      public override XmlSchema Schema
      {
         get
         {
            return new XmlSchema() 
            {
               TargetNamespace = "http://www.example.com" 
            };
         }
      }

      public override void ParseElement(
         SourceLineNumberCollection sourceLineNumbers,
         XmlElement parentElement, XmlElement element,
         params string[] contextValues)
      {
         // do nothing
      }

   }
}

الآن ترجمة ذلك إلى mywixext.dll مثل هذا:

"c:\WINDOWS\Microsoft.NET\Framework\v3.5\csc.exe" /t:library ^
/r:"c:\program files\windows installer xml v3\bin\wix.dll" ^
mywixext.cs

إذا كنت الآن تجميع wix مصادر مع خيار -ext mywixext.dll (أو ما يعادلها في نذري) ثم كل العناصر في http://www.example.com مساحة سيتم تجاهلها.

تحرير:لقد كان دقيقا عندما قلت أن أي عنصر من شأنه أن يمكن تجاهلها.على WIX مخطط XML لا يسمح لك لإضافة طفلك العناصر مباشرة تحت WIX العنصر.معظم العناصر الأخرى التي تسمح بذلك.ابحث عن النص <xs:any namespace="##other" processContents="lax"> في c:\program files\windows installer xml v3\doc\wix.xsd العثور على التمدد نقطة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top