public void CatchDollarSignInOutputPropertyName() { string projectContents = @" <Project ToolsVersion=`msbuilddefaulttoolsversion` xmlns=`msbuildnamespace`> <Target Name=`t` > <CreateProperty Value=`x`> <Output TaskParameter=`Value` PropertyName=`$(x)`/> </CreateProperty> </Target> </Project> "; Project p = ObjectModelHelpers.CreateInMemoryProject(projectContents); MockLogger l = new MockLogger(); p.ParentEngine.RegisterLogger(l); p.Build(new string[] { "t" }, null); string warning = String.Format(MockLogger.GetString("DollarSignInTaskOutputPropertyName"), "$(x)"); Assertion.Assert(-1 != l.FullLog.IndexOf(warning)); }