2

我正在同时为不同的项目使用VS2008VS2010。最近我尝试为实体项目生成序列化程序集,但无法通过 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 项目上!

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

顺便说一句,我使用 win 2008 Server 32 位操作系统,IIS 7 进行开发。

4

1 回答 1

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 可以解决这个问题。

您的后期构建命令应该像这样开始:

"$(FrameworkSDKDir)\bin\NETFX 4.0 Tools\sgen"
于 2012-04-20T12:49:10.630 回答