2013-03-28 2 views
0

Got следующий execption пытается applay миграции с использованием MigratorDotNet:MigratorDotNet: Нет публичных классов с атрибутом миграции были найдены

No public classes with the Migration attribute were found 

Построить secceded в общем, не появляются без ошибок конфигурации.

У меня есть построить конфигурационный файл со следующим содержанием:

<?xml version="1.0" encoding="utf-8"?> 
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup> 
     <ProjectRoot Condition="'$(ProjectRoot)' == ''">$([System.IO.Directory]::GetParent($(MSBuildProjectDirectory)))</ProjectRoot> 
     <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> 
     <ClassLibraryOutputDirectory>bin\$(Configuration)</ClassLibraryOutputDirectory> 
     <MigrationsProject>$(ProjectRoot)\Solution\SqlMigrator\SqlMigrator.csproj</MigrationsProject> 
    </PropertyGroup> 

    <Import Project="Migrator.Targets" /> 

    <Target Name="Build-Migrations"> 
     <MSBuild Projects="$(MigrationsProject)" Targets="Build"> 
      <Output TaskParameter="TargetOutputs" ItemName="MigrationAssemblies" /> 
     </MSBuild> 

     <Message Text="Built: @(MigrationAssemblies)"/> 
    </Target> 

    <Target Name="Migrate" DependsOnTargets="Build-Migrations"> 
     <Message Text="Migrating: @(MigrationAssemblies)"/> 
     <Migrate Provider="MySql" 
      Connectionstring="server=localhost;User Id=root;password=;database=loveproject" 
      Migrations="@(MigrationAssemblies)" /> 
    </Target> 
</Project> 

У меня есть один тест миграции:

namespace SqlMigrator 
{ 
    using Migrator.Framework; 
    using System.Data; 

    [Migration(20140401110402)] 
    public class TestMigrate : Migration 
    { 
     public override void Up() 
     { 
      this.Database.ExecuteNonQuery(@"CREATE TABLE example (id INT, data VARCHAR(100));"); 
     } 

     public override void Down() 
     { 

     } 
    } 
} 

Выполнение миграции: C: \ Windows \ Microsoft.NET \ Framework64 \ v4 .0.30319 \ MSBuild.exe mbuild.proj/t: Миграция

+0

Вы определенно строите против той же сборки с определением класса миграции? – Rup

+0

Честно говоря, я совершенно не уверен, что я делаю это правильно. Это первый раз, когда я работаю с скриптами msbuild и с migratordotnet. :) –

ответ

0

Обнаружена проблема. Проблема была в версии Migrator внутри Project и что я звоню из msbuild.

Я установил последнюю версию из Nuget и загрузил исполняемые файлы с веб-страницы, чтобы встроить в msbuild (Migrator.MSBuild.dll). Это были 2 otehr версии, используемые в моем проекте и в скрипте msbuild.

Смежные вопросы