に属性を設定しない私は、XMLFILE要素を使用して、インストール時にXMLファイルに要素を追加してい:はどのように私はXMLFILEを使用した場合のxmlnsがウィックス3
<util:XmlFile Id="SetOracleDialectProperty"
Action="createElement"
ElementPath="//hibernate-configuration/session-factory"
Name="property"
Sequence="9"
File="[INSTALLLOCATION]Config\hibernate.config"
Value="NHibernate.Dialect.Oracle10gDialect"/>
私はこのようなルックスに書いています空のファイル:
を問題が空であることを<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property xmlns="">NHibernate.Dialect.Oracle10gDialect</property>
</session-factory>
</hibernate-configuration>
:私はこれで終わるインストーラを実行した後
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
</session-factory>
</hibernate-configuration>
xmlns属性がファイルのルートノードで指定されたxmlnsをオーバーライドしているため、プロパティ要素がnhibernateによって正しく認識されません。
ルートノードと一致するように値を設定するか、xmlns属性を削除するにはどうすればよいですか?
私は答えを探していましたが、私が見つけた最も近いものは「MSXMLでやることをやってください」というものです。これはWiXでのやり方を教えてくれません。使用するXmlFileの属性)。私は素敵な書式設定を使用することができる場所で、少しロブの答えを説明するために
EDIT :
- あなたはのXMLConfig要素にノード=「文書」を設定することで、ドキュメントフラグメントを追加します。
- 明示的に名前空間を設定する必要があります。それ以外の場合は、デフォルトの名前空間に戻ります。
- また、「ドキュメント」を追加していますが、複数の要素を指定しても機能しないようです。不思議で完全に役に立たない「セットアップウィザードが途中で終了しました」というランタイムエラーが発生します。
だから私の固定のコードは次のようになります。
<util:XmlConfig Id="MsSqlDialect"
Action="create"
ElementPath="//hibernate-configuration/session-factory"
File="[INSTALLLOCATION]Config\hibernate.config"
Node="document">
<![CDATA[
<property xmlns="urn:nhibernate-configuration-2.2" name="dialect">NHibernate.Dialect.Oracle10gDialect</property>
]]>
</util:XmlConfig>