Changes that might require source code modification

[MarshalAs(...)] string testString()

must now be written as:

[return:MarshalAs(...)] string testString()

Previous Form New Form
attributeusage System.AttributeUsage
comimport System.Runtime.InteropServices.ComImport
commethod No direct mapping. Use System.Runtime.InteropServices.PreserveSig for similar functionality.
conditional System.Diagnostics.Conditional
dispid System.Runtime.InteropServices.DispId
dllimport System.Runtime.InteropServices.DllImport
guid System.Runtime.InteropServices.Guid
in System.Runtime.InteropServices.In
interfacetype System.Runtime.InteropServices.InterfaceType
marshal System.Runtime.InteropServices.MarshalAs
name System.Runtime.CompilerServices.CSharp.IndexerName
nativetype No direct mapping. Use System.Runtime.InteropServices.MarshalAs for similar functionality.
nonserialized System.NonSerialized
obsolete System.Obsolete
out System.Runtime.InteropServices.Out
returnshresult
Nno direct mapping. Use System.Runtime.InteropServices.PreserveSig or the PreserveSig argument on DllImport for similar functionality
serializable System.Serializable
structlayout System.Runtime.InteropServices.StructLayout
structoffset System.Runtime.InteropServices.FieldOffset
sysimport System.Runtime.InteropServices.DllImport
sysstruct No direct mapping. Use System.Runtime.InteropServices.StructLayout for similar functionality.
uuid System.Runtime.InteropServices.Guid

New language features

Changes that might require build changes

Deprecated command-line option New equivalent command-line option
/assemble- /target:module
/dll /target:library
/dllbase /baseaddress
/exe /target:exe
/import /reference
/winexe /target:winexe

Command-line options Assembly-level attribute equivalent
/a.config System.Reflection.AssemblyConfiguration
/a.culture System.Runtime.CompilerServices.AssemblyCulture
/a.description System.Reflection.AssemblyDescription
/a.keyfile System.Runtime.CompilerServices.AssemblyKeyFile
/a.keyname System.Runtime.CompilerServices.AssemblyKeyName
/a.sign System.Runtime.CompilerServices.AssemblyDelaySign
/a.title System.Reflection.AssemblyTitle
/a.version System.Runtime.CompilerServices.AssemblyVersion

1) Current working directory. This is the directory the user is running the compiler from.

2) COM+ system directory retrieved from GetCorSystemDirectory() using the shim.

3) /LIB command-line option.

4) LIB environment variable.

Changes that are not likely to require source code changes, except in very obscure cases

1. The file csc.rsp in the directory containing csc.exe is always read for command-line arguments as if it were a response file.

2. The file csc.rsp in the current directory is always read for command-line arguments as if it were a response file.

New warnings