これは動作するC#6テストコードです。それは Microsoft.Build(Visual Studio SDK)でC#6をコンパイルする際のエラー
namespace testcode
{
class Program
{
static void Main(string[] args)
{
string x = null ;
string y = x?.Substring(0, 2);
return;
}
}
}
cproj
がtoolsversion 14.0
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
を持っている。これは、私がのVisual Studio SDK
//References Microsoft.Build and Microsoft.Build.Framework
namespace MSBuildTest
{
class Program
{
static void Main(string[] args)
{
var pc = new Microsoft.Build.Evaluation.ProjectCollection(Microsoft.Build.Evaluation.ToolsetDefinitionLocations.Registry);
pc.DefaultToolsVersion = "14.0";
pc.RegisterLogger(new Microsoft.Build.Logging.ConsoleLogger(Microsoft.Build.Framework.LoggerVerbosity.Detailed));
var pr = pc.LoadProject(@"C:\path\to\testcode.cproj");
pr.Build();
}
}
}
経由
MSBUILDでそれをコンパイルしようとしている方法ですVS2015
にコンパイル
これはエラーメッセージ
です。Program.cs(8,26): error CS1525: Invalid expression term '.' Program.cs(8,27): error CS1003: Syntax error, ':' expected 0 Warning(s) 2 Error(s)
私はそれが間違っているのMSBuild実行可能ファイルを使用してだと思うが、私はMSBUILDビン・パスを強制する方法を発見しました。
ます私はC#v5で再構築すると思います。 – DavidG
@DavidGしかし、どうすれば修正できますか? – xvan
おそらく、適切な 'Microsoft.Build。*'ライブラリを参照していますか?それらの完全な経路は何ですか? – DavidG