Article ID: 2229865 - View products that this article applies to.
From Microsoft .Net 3.5 Framework SP1 onwards, the TSAWARE flag is set ON by default in the PE header of the image produced by the included C# and Visual Basic. NET compilers. This can be verified by running dumpbin on any C#/VB.net assembly built using those compilers as shown below,
Dumpbin /Headers <assembly_name>.exe(dll)
8540 DLL characteristics
No structured exception handler
Terminal Server Aware
Note: dumpbin.exe is included in the Windows SDK and is also installed with Visual Studio.
For Microsoft Visual C++ projects, this flag can be edited through Visual Studio IDE as follows:
And for C#/VB.Net projects, you will have to use editbin.exe tool (since the respective compiler dont have the switch) :
1. Open up Visual Studio command prompt
Note: If your assembly is strong named, modifying it using editbin will invalidate the strong name. Instead you would need to use delayed signing and strong name it after using editbin.
As per the TSAWARE MSDN documentation , when an application is not Terminal Server aware (also known as a legacy application), Terminal Server makes certain modifications to the legacy application to make it work properly in a multiuser environment. For example, Terminal Server will create a virtual Windows folder, such that each user gets a Windows folder instead of getting the system's Windows directory. This gives users access to their own INI files. In addition, Terminal Server makes some adjustments to the registry for a legacy application. These modifications slow the loading of the legacy application on Terminal Server.
It is recommended that you update your application to be TSAWARE and not modify this flag.
(http://go.microsoft.com/fwlink/?LinkId=151500)for other considerations.