MaxLength Attribute in EF4.3.1

前端 未结 2 1801
别跟我提以往
别跟我提以往 2021-01-04 23:32
 The type \'System.ComponentModel.DataAnnotations.MaxLengthAttribute\' 
 exists in both 

 [path...]\\packages\\EntityFramework.4.3.1\\lib\\net40\\EntityFramework.dl         


        
2条回答
  •  小鲜肉
    小鲜肉 (楼主)
    2021-01-04 23:48

    I didn't have the option of upgrading the project to use EF5, or downgrading the build machine to .Net Framework 4.

    There is a way to solve this though! It turns out when you install Visual Studio 2012 it adds the following folder (amongst others).

    C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0

    In VS if you open a project targetting 4.0 and look at the properties of your reference to System.ComponentModel.DataAnnotations you'll see that the path is pointing to the above location, rather than the GAC.

    This folder contains the original Framework 4.0 assemblies. If they're present on the machine then MSBuild etc., upon building a project targeting 4.0 will reference these rather than the modified ones that 4.5 puts into the GAC.

    In our case this meant we could fix the problem by copying that folder from a dev machine with VS installed up to our build server in the same location. (N.b. We only needed to copy this folder, there was no need to install VS on the build server).

    More info here: http://marcgravell.blogspot.co.uk/2012/09/iterator-blocks-missing-methods-and-net.html

    Hope this helps someone else!

提交回复
热议问题