3

たくさんの移行を伴うプロジェクトがあります。migrator.exeを使用して手動で実行できますが、NAntで動作させるのに苦労しています。

次の内容の*.buildファイルがあります。

<project name="Migrations" xmlns="http://nant.sf.net/release/0.85/nant.xsd" default="migrate">
    <loadtasks assembly="../packages/FluentMigrator.1.0.3.0/tools/FluentMigrator.NAnt.dll" />    
    <target name="migrate" description="Migrate the database">
        <property name="version" value="-1" overwrite="false" />
        <migrate
              provider="sqlserver2008"
          connectionstring="data source=*********; Initial Catalog=*****;User Id=*******; Password=********;"
          target="./Migrations/bin/Debug/Migrations.dll"
              directory="Migrations"
          task="migrate"
              to="${version}" />
    </target>
</project>

これを実行すると、次の出力が得られます。BUILD FAILED

C:\projects\ThisProject\Migrations\migrations.build(3,3):
Failure scanning "C:\projects\packages\FluentMigrator.1.0.3.0\tools\FluentMigrator.NAnt.dll" for extensions.
    Could not load file or assembly 'file:///C:\projects\packages\FluentMigrator.1.0.3.0\tools\FluentMigrator.NAnt.dll' or one of its dependencies. An attempt was made to load a program with an incorrect format.

私はdepends.exeを探しに行きましたが、そのサイトはダウンしているようです。これを機能させる方法について何かアイデアはありますか?私がこれをすべて間違ってしているなら、私はここで完全に新しいアイデアを受け入れます。

======完全なソリューションのために更新======

会長とarmen.shimoonは彼らの答えで何かに取り組んでいました。

ステップ1、FluentMigratorとFluentMigrator.Toolsを1.0.5.0に更新しました。ツールはまだ1.0.3.0のままでした。

2番目のステップは、ビルドファイルを更新して.NET4.0dllを参照することでした。両方の組み合わせで問題は修正されましたが、.NET4.0dllを参照するまで改善は見られませんでした。

これが将来の参考のために私の現在の.buildファイルです:

<project name="Migrations" xmlns="http://nant.sf.net/release/0.85/nant.xsd" default="migrate">
    <loadtasks assembly="../packages/FluentMigrator.Tools.1.0.5.0/tools/anycpu/40/FluentMigrator.Nant.dll" />
    <target name="migrate" description="Migrate the database">
      <property name="version" value="-1" overwrite="false" />
        <migrate
              database="sqlserver2008"
          connection="data source=******; Initial Catalog=*****;User Id=*****; Password=*****;"
          target="../Migrations/bin/Debug/Migrations.dll"
          verbose="true"
          />
    </target>
</project>
4

2 に答える 2

1

私の最初の推測では、NAnt と FluentMigrator のバージョンが同期していない可能性があります。したがって、私のアドバイスは NAnt 0.92 (Chocolatey が好きになったので: Chocolatey から入手)、FluentMigrator 1.0.5.0、およびFluentMigrator Tools 1.0.5.0を入手することです。おそらく、これで問題はすでに解決しています

于 2012-11-25T08:58:41.937 に答える
1

これの最も可能性の高い理由は、NAnt が x86 で実行されており、FluentMigrator DLL が x64 で実行されていることです。

編集: 別の可能性は、.NET ターゲット フレームワークのバージョンです。NAnt バイナリが .NET 3.5 で、FluentMigrator が .NET 4.0 の場合、適切にロードできません。

于 2012-11-25T09:04:27.850 に答える