首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设置NAnt和FluentMigrator

设置NAnt和FluentMigrator
EN

Stack Overflow用户
提问于 2012-11-25 04:26:09
回答 2查看 644关注 0票数 3

我有一个有很多移民的项目。我可以使用migrator.exe手动运行它,但是我很难让它与NAnt一起工作,而我更喜欢它。

我有一个包含以下内容的*.build文件:

代码语言:javascript
复制
<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>

当它运行时,我得到以下输出:生成失败

代码语言:javascript
复制
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,但是那个网站看起来很低落,有什么好办法让这个网站运作的吗?如果我做错了,我愿意接受全新的想法。

======Updated for solution======

主席和armen.shimoon回答了一些问题。

第一步,我将我的FluentMigrator和FluentMigrator.Tools更新为1.0.5.0。工具仍在1.0.3.0。

第二步是更新我的构建文件以引用.NET 4.0DLL。两者的结合解决了这个问题,但是直到我引用了.NET 4.0DLL之后,它才显示出改进。

下面是我当前的.build文件,供将来参考:

代码语言:javascript
复制
<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>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-25 09:04:27

最可能的原因是NAnt运行在x86下,而FluentMigrator DLL运行在x64中。

编辑:另一种可能是.NET目标框架版本。如果您的NAnt二进制文件在.NET 3.5中,而FluentMigrator是.NET 4.0,那么它将无法正确加载它。

票数 1
EN

Stack Overflow用户

发布于 2012-11-25 08:58:41

我的第一个猜测是,您的NAnt和FluentMigrator版本可能不同步。所以我的建议是得到NAnt 0.92 (因为我喜欢巧克力:用巧克力买的),FluentMigrator 1.0.5.0FluentMigrator工具1.0.5.0。也许这已经解决了你的问题

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13548270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档