尝试加载格式不正确的程序集

时间:2012-04-20 11:31:29

标签: visual-studio-2010 visual-studio-2008 sgen

我正在与 VS2008 VS2010 同时处理不同的项目。最近我尝试为Entities Project生成序列化程序集,但无法通过Visual Studio 2010生成相同的程序集。这会引发以下错误:

An attempt was made to load an assembly with an incorrect format: X:\Dev\Proj\X.Entities\bin\Debug\X.entities.dll.

这是我为实体项目设置的构建后事件

"$(FrameworkSDKDir)\Bin\sgen" /nologo /force $(TargetFileName)
copy "$(TargetDir)X.Entities.Serializer.dll" "$(SolutionDir)\X.Site\Bin"

我可以从VS 2010命令行生成Serializer dll。 对于VS2008项目;线路工作正常。但是,错误发生在VS2010项目上!

VS2010有不同的FrameworkSDKDir变量吗?如果没有,我如何修改它以使用VS2010和VS2008项目?

BTW,我使用win 2008 Server 32位操作系统,IIS 7进行开发。

1 个答案:

答案 0 :(得分:3)

您指向的sgen是针对CLR 2.0的。理想情况下,它将位于C:\ Program Files \ Microsoft SDKs \ Windows \ v7.0A \ bin。

“C:\ Program Files \ Microsoft SDKs \ Windows \ v7.0A \ bin \ NETFX 4.0 Tools”下有一个4.0版本的sgen,它解决了这个问题。

你的post build命令应该像这样开始:

"$(FrameworkSDKDir)\bin\NETFX 4.0 Tools\sgen"