Я только что столкнулся с подобной проблемой при попытке создать многоцелевой пакет NuGet.Код прекрасно скомпилирован в Visual Studio 2010 при установке целевой платформы на 3.5, но не скомпилирован в командной строке.После некоторых экспериментов я нашел выигрышное решение для командной строки, хотя мне не совсем ясно, в чем заключается основная проблема.
Для справки:
Успешно компилирует сборку с ссылками 4.0 (подтверждено проверкой через DotPeek):
C:\BuildAgent\work\efbf25fbf21ee436>C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe My.csproj /p:Configuration=Release;TargetFrameworkVersion=v4.0;ToolsVersion=4.0 /t:Rebuild
Обратите внимание на вывод MSBuild:
Microsoft (R) Build Engine Version 4.0.30319.1
[Microsoft .NET Framework, Version 4.0.30319.296]
Успешно компилирует сборку с ссылками 2.0 / 3.5 (подтвержденопроверка через DotPeek):
C:\BuildAgent\work\efbf25fbf21ee436>C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe My.csproj /p:Configuration=Release;TargetFrameworkVersion=v3.5;ToolsVersion=3.5 /t:Rebuild
Обратите внимание на вывод MSBuild:
Microsoft (R) Build Engine Version 4.0.30319.1
[Microsoft .NET Framework, Version 4.0.30319.296]
Не удается скомпилировать :
C:\BuildAgent\work\efbf25fbf21ee436>C:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe My.csproj /p:Configuration=Release;TargetFrameworkVersion=v3.5;ToolsVersion=3.5 /t:Rebuild
Обратите внимание на MSBuildвывод:
Microsoft (R) Build Engine Version 3.5.30729.4926
[Microsoft .NET Framework, Version 2.0.50727.4984]