我正在使用 VS2010 和 .NET 4.0。
我有两个小项目A和B。A是 C++/CLI DLL 项目,B是引用A的 C# EXE 项目。两者都必须在 x86 中编译,因为A使用 x86 本机 dll。
当我用 VS2010 IDE构建B时, B编译得很好。接下来,我尝试使用以下命令行使用 MSBuild构建B
MSBuild B.csproj /property:Platform=x86;Configuration=Release
它失败并出现以下错误。
“ A .vcxproj”(默认目标)(16)->(InvalidPlatformError 目标)-> C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.Cpp.InvalidPlatform.Targets(23,7 ):错误 MSB8007:项目“ A .vcxproj”的平台无效。平台='x86'。您可能会看到此消息,因为您正在尝试构建没有解决方案文件的项目,并且指定了该项目不存在的非默认平台。[一个.vcxproj]
这似乎是因为 C++/CLI 使用“Win32”作为平台名称,而 C# 使用“x86”。因此,当我指定“x86”时,它无法构建A。如果“Win32”,则无法构建B。
由于自动构建,我必须使用 MSBuild。B的默认平台固定为 AnyCPU(我无法更改它),因此我无法使用默认平台技巧,并且在使用 MSBuild 构建时必须指定“x86”。我怎样才能做到这一点?有什么方法可以更改平台名称,或者使用 MSBuild 的更好方法吗?我可以在不使用默认平台的情况下执行此操作吗?