Wix의 새 네임스페이스에서 속성과 요소를 추가하고 Wix에서 무시하려면 어떻게 해야 하나요?

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

  •  05-07-2019
  •  | 
  •  

문제

Wix wxs 파일에 관련 없는 속성을 추가하고 Wix가 이를 무시하도록 하고 싶습니다.

현재 확장 프로그램을 찾는 동안 다음과 같은 오류가 발생합니다.

구성 요소 요소에 처리되지 않은 확장 속성 'myns:myattr'이 포함되어 있습니다.'http://tempuri.org/myschema.xsd' 네임스페이스가 제공되었습니다.

Rob, Bob 또는 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