2009-12-07 8 views
0

J'ai essayé de câbler un de mes projets pour utiliser Machine.Migrations pour les migrations de base de données. Cependant, je n'ai pas été capable de faire cela. J'ai eu des erreurs bizarres. J'ai essayé d'utiliser la tâche MSBuild mais j'obtiens l'erreur suivante.Migrations de machine wireup.

Target MigrationMachine: 
    D:\repositories\core\playground\minhajuddin\MachineMigrationsTest\lib\Machine.Migrations.targets(20,5): error MSB4062: The "Machine.Migrations.MigratorTask" task could not be loaded from the assembly D:\repositories\core\playground\minhajuddin\MachineMigrationsTest\lib\Machine.Migrations.dll. Could not load file or assembly 'file:///D:\repositories\core\playground\minhajuddin\MachineMigrationsTest\lib\Machine.Migrations.dll' or one of its dependencies. The system cannot find the file specified. Confirm that the <UsingTask> declaration is correct, and that the assembly and all its dependencies are available. 
Done building target "MigrationMachine" in project "MachineMigrationsTest.csproj" -- FAILED. 

Lorsque j'essaie d'utiliser migrate.exe. Je reçois l'erreur suivante:

INFO Compiling Migration<1, CreateEmpTable>System.ArgumentException: Unable to locate Migration: 
D:\repositories\core\playground\minhajuddin\MachineMigrationsTest\MachineMigrationsTest\001_CreateEmpTable.cs at Machine.Migrations.Services.Impl.MigrationHelpers.LookupMigration(Assembly assembly, MigrationReference migrationReference) in D:\repositories\os\machine.migrations\Source\Machine.Migrations\Services\Impl\BooMigrationFactory.cs:line 80 at Machine.Migrations.Services.Impl.CSharpMigrationFactory.CompileMigration(MigrationReference migrationReference) in D:\repositories\os\machine.migrations\Source\Machine.Migrations\Services\Impl\CSharpMigrationFactory.cs:line 71 
    at Machine.Migrations.Services.Impl.AbstractMigrationCompilerFactory.CreateMigrationInstance(MigrationReference migrationReference) in D:\repositories\os\machine.migrations\Source\Machine.Migrations\Services\Impl\AbstractMigrationCompilerFactory.cs:line 9 
    at Machine.Migrations.Services.Impl.CSharpMigrationFactory.CreateMigration(Mi 
grationReference migrationReference) in D:\repositories\os\machine.migrations\So 
urce\Machine.Migrations\Services\Impl\CSharpMigrationFactory.cs:line 35 
    at Machine.Migrations.Services.Impl.MigrationRunner.CanMigrate(ICollection`1 
steps) in D:\repositories\os\machine.migrations\Source\Machine.Migrations\Servic 
es\Impl\MigrationRunner.cs:line 40 
    at Machine.Migrations.Services.Impl.Migrator.RunMigrator() in D:\repositories 
\os\machine.migrations\Source\Machine.Migrations\Services\Impl\Migrator.cs:line 
39 
    at Machine.Migrations.Migrator.Run(IConfiguration configuration) in D:\reposi 
tories\os\machine.migrations\Source\Machine.Migrations\MigratorTask.cs:line 29 
    at Machine.Migrations.ConsoleRunner.Program.Run(String[] args) in D:\reposito 
ries\os\machine.migrations\Source\Machine.Migrations.ConsoleRunner\Program.cs:li 
ne 38 

code dans 001_create_emp_table.cs

namespace MachineMigrationsTest { 
    public class CreateEmpTable : SimpleMigration { 
     public override void Up() { 
      Schema.AddTable("Emp", 
       new Column[] 
        { 
         new Column("Id",ColumnType.Long,0,true,false) 
        }); 
     } 

     public override void Down() { 
      Schema.DropTable("Emp"); 
     } 
    } 


} 

S'il vous plaît aidez-moi.

Merci, Khaja Minhajuddin.

Répondre

1

Essayez de nommer votre classe le même que votre fichier, sauf pour la version: create_emp_table

Edit: Aussi, essayez de supprimer l'espace de noms. Je pense que les MMigrations peuvent exiger que les choses ne soient pas dans un espace de noms.

+0

Merci pour votre aide, cela a résolu le problème. –

Questions connexes