Frage

Wie kann ich die Verbindungszeichenfolge aus nhibernate.config Datei mit Nant ändern

Das Problem ist, dass alle Beispiele sind etwa Attributwert zu ändern, aber nhibernate hat inneren Text

eq:

<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
 <session-factory>
    <property name="connection.connection_string">Data Source.\server;Database=UnitTestDb;UID=user;pwd=pass;</property>
    <property name="dialect">NHibernate.Dialect.MsSql2008Dialect</property>
    <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
    <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
    <property name="show_sql">true</property>
    <property name="connection.release_mode">auto</property>
    <property name="adonet.batch_size">500</property>
    ....

Ich muss Änderungseigenschaft connection.connection_string

<xmlpoke        file="${nhibernate.file}"
        xpath="/hibernate-configuration/session-factory/add[@key='connection.connection_string']/@value"
        value="${connection.string}">
</xmlpoke>

Das funktioniert nicht in diesem Fall.

Danke

War es hilfreich?

Lösung

Die Probe XPath Sie verwenden bezieht sich auf Elemente namens add mit Attributen genannt key. In Ihrem Fall Sie suchen property Elemente mit Attributen genannt name.

Als nächstes, da Sie den Text ändern mögen, und nicht das @value Attribut auf dem property Elemente sollten Sie die hintere Attribut Referenz entfernen.

Und schließlich, da die NHibernate xml einen bestimmten Namespace werden Sie informieren haben xmlpoke den richtigen Namensraum zu verwenden.

So ist die Aufgabe sollte wie folgt aussehen:

<xmlpoke file="${nhibernate.file}"
    xpath="/nhc:hibernate-configuration/nhc:session-factory/nhc:property[@name='connection.connection_string']"
    value="${connection.string}">
    <namespaces>
        <namespace prefix="nhc" uri="urn:nhibernate-configuration-2.2" />
    </namespaces>
</xmlpoke>

Hinweis: Ich habe diese aus nicht getestet, aber allgemeiner xml / XPath-Regeln sind hier in Arbeit, damit ich es funktioniert hoffen. Auch könnte es sein, dass es einen Weg gibt, um xmlpoke um anzuzeigen, dass der angegebene Namespace der Standard sein sollte und damit die Notwendigkeit zu beseitigen Namespacepräfix alle die verschiedenen Teile in der XPath.

Viel Glück!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top