Вы не подключили свою Контрольную группу к задаче Csc.Также ссылки, которые вы указали, не могут быть использованы непосредственно внутри задачи.Задачи, поставляемые с MSBuild, включают ResolveAssemblyReference, который способен преобразовывать короткие имена сборок и подсказки поиска в пути к файлам.Вы можете увидеть, как он используется внутри c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets
.
Без ResolveAssemblyReference простейшая вещь, которую вы можете сделать, это написать так:
<PropertyGroup>
<AssemblyName>MyAssemblyName</AssemblyName>
<OutputPath>bin\</OutputPath>
</PropertyGroup>
<ItemGroup>
<Compile Include="SomeSourceFile.cs" />
</ItemGroup>
<ItemGroup>
<Reference Include="lib\Newtonsoft.Json.dll" />
</ItemGroup>
<Target Name="Build">
<MakeDir Directories="$(OutputPath)" Condition="!Exists('$(OutputPath)')" />
<Csc Sources="@(Compile)" References="@(Reference)" OutputAssembly="$(OutputPath)$(AssemblyName).exe" />
</Target>
Обратите внимание, что элемент Reference указывает прямой путь к ссылочной сборке.