SubSonic и app.config в форме Windows - PullRequest
0 голосов
/ 14 мая 2009

Как должен быть файл app.config в приложении Windows Form, чтобы данные классы доступа ей генерировались автоматически в сборке?

Ответы [ 2 ]

1 голос
/ 15 мая 2009

Ваш процесс сборки должен включать такую ​​команду:

sonic.exe generate /config "c:\myproject\App.config"

sonic.exe - это утилита SubCommander , которая включена в текущий выпуск . App.config не может обработать это непосредственно для вас.

Один из способов выполнить команду - MSBuild . Задача Exec MS Build может выглядеть примерно так:

<Target Name="GenerateSubSonicClasses" DependsOn="BeforeBuild">
  <Exec Command="sonic.exe generate /config &quot;c:\myproject\App.config&quot;" WorkingDirectory="c:\path-to-subcommander"/>
</Target>

Я только что это придумал, поэтому, возможно, его нужно настроить, прежде чем он сработает для вас. Эта команда будет добавлена ​​в ваш файл проекта Visual Studio (т. Е. someproject.vbproj ).

1 голос
/ 15 мая 2009

Да. Что вы делаете, это добавляете раздел в configSections под названием «SubsonicService», например:

<configSections>
    <section name="SubSonicService" type="SubSonic.SubSonicSection, SubSonic" requirePermission="false"/>
</configSections>

Затем вы добавляете ветку connectionStrings со строками соединения, которые вы будете использовать в своем проекте, например:

<connectionStrings>
    <clear/>
    <add name="WheelMUDSQLite" connectionString="Data Source=C:\Dev\WheelMud.net\src\SQL\SQLite\WheelMud.net.db;Version=3;"/>
</connectionStrings>

Наконец, вы добавляете узел SubsonicService, который вы добавили в configSections, например:

<SubSonicService defaultProvider="WheelMUDSQLite">
    <providers>
        <clear/>
        <add name="WheelMUDSQLite" type="SubSonic.SQLiteDataProvider, SubSonic" connectionStringName="WheelMUDSQLite" generatedNamespace="WheelMUD.DataLayer"/>
    </providers>
</SubSonicService>

Здесь вы размещаете всех своих провайдеров. Я использую утилиту SubStage для генерации DAL. Таким образом, вы можете полностью отделить свои материалы от веб-фрагментов, которые поставляются с Subsonic.

...