Microsoft Enterprise Library 5.0 Known Issues

The following are the known issues and important information about this release, organized by areas:

1. Targeting .Net 4.0 client profile

2. Enterprise Library Installer

3. Enterprise Libarary Log-In

4. Configuration Tool
4.1 Loading an existing file and persisting it after updates
4.2 Configuring the Logging block FlatFileTraceListener
4.3 Configuring a file-based configuration source to a file that's being edited
4.4 Commenting out sections in a configuration file
4.5 Microsoft Visual Studio-Integrated Configuration Tool
4.6 Environment Overrides
4.7 Usability
5. Manageability

6. Enterprise Library Application Blocks
6.1 Custom Providers
6.2 Validation Application Block
6.3 Unity
6.4 Data Access Application Block
7. Configuration API

8. Unit Tests

9. Quickstarts


1. .NET 4.0 client profile

1.1 Data block will not work when targeting .NET 4.0 client profile. Workaround: Target the full .NET framework.

2. Enterprise Library Installer

2.1 Enterprise Library is unable to run the source code installer using your default settings. Enterprise Library's source code MSI is unmanaged from perspective of the Windows Installer, and certain group policy settings prohibit installing such unmanaged MSIs. Use one of the following workarounds:
– Turn UAC off during installation.
– Run source installer through command line as Administrator using the "msiexec -i " command.

3. Enterprise Libarary Log-In

3.1 Enterprise Library user login fails if the user with trusted SQL Server connection is not associated with the appropriate authentication mode. .sql authentication must be enabled on the instance for this test to pass. For more information and the script for changing the authentication mode go to Microsoft Support on MSDN and see How to change the default login authentication mode to SQL while installing SQL Server 2000 Desktop Engine by using Windows Installer.

4. Configuration Tool


4.1 Loading an existing file and persisting it after updates, results in the commented sections rearranged or removed

4.2 An existing file needs to be specified when configuring the Logging block FlatFileTraceListener

4.3 Configuring a file-based configuration source to a file that's being edited doesn’t save the "enterpriseLibrary.ConfigurationSource" section

4.4 Commenting out sections in a configuration file can have unexpected results. Loading and saving a configuration file with comments at the top level of the <configuration> element can result in the commented sections being moved within the file and in some cases removed from the file. Comments inside sections are removed.

4.5 Microsoft Visual Studio-Integrated Configuration Tool
4.5.1 Tool can produce errors when referencing EnterpriseLibrary.Configuration.Design assembly from user project. Workaround: Use the standalone configuration tool
4.5.2 Referencing WPFToolkit in project causes DateRangeValidator to not accept date input on surface. Workaround: Use the property grid.
4.5.3 The intergrated config tool fails to initialize after switching assembly sets. Workaround: restart Microsoft Visual Studio.
4.5.4 Initialization of the integrated Visual Studio Enterprise Library Configuration Editor fails and an exception is thrown for Enterprise Library 4.1 and Enterprise Library 5.0 side-by-side installs when you use two WinForms project with the Enterprise Library 5.0 configuration set to source and the Enterprise Library 4.1 configuration set to source. The following side-by-side combinations work:
– Enterprise Library 4.1 signed with Enterprise Library 5.0 source.
– Enterprise Library 4.1 signed with Enterprise Library 5.0 signed.
– Enterprise Library 4.1 unsigned with Enterprise Library 5.0 signed.

4.6 Environment Overrides
4.6.1 Logging trace listeners already picked in main configuration cannot be picked in overridden configuration using the configuration tool.
4.6.2 The Enterprise Library 5.0 Configuration tool does not support Environmental Overrides for the PIAB Logging handler Categories. You cannot use the configuration tool at design time to customize the run time settings of your PIAB configuration for Logging handler Categories based on the environment.

4.6.3 Environmental overrides are not provided for overriding the type of a custom providers.
4.7 Usability
4.7.1 Export merge file to an existing file does not prompt about the overwrite.
4.7.2 In some cases, highlighting of the field with already fixed validation errors may remain. Workaround: force validating by using the context menu (right-click, Validate)

5. Manageability

5.1 In the logging block, using Manageability Configuration Source does not support selecting multiple trace options

6. Enterprise Library Application Blocks


6.1 Custom Providers
6.1.1 The ResourceDisplayNameAttribute and CommandAttribute only work properly with resource files generated by the C# compiler. As work-arounds for using these attributes with assemblies compiled from Visual Basic you can do one of the following:
– Not use resources and directly specify the values to appear. You can do you this by using DisplayNameAttribute in place of ResourceDisplayName and by setting the Title property any CommandAttribute attributes.
– Create a VB version of any ResourceDisplayName and CommandAttribute attribute classes you need that pull resources from VB generated resource files correctly.
– ResourceDisplayNameAttribute and CommandAttribute may be able to locate VB resources if you do not generate them into any namespace.
6.1.2 There is no way for a custom provider to receive it's NameProperty, which is used as the name of the provider, from the configuration, for example, the Name property on the ILogFilter interface. . You can workaround this by using the NamePropertyDisplayFormat named parameter as a template for the value; for example, NamePropertyDisplayFormat ="Field: {0}". The NameProperty attribute is optional. The provider will use the name of the configuration element if a value is not specified.

6.2 Validation Application Block
6.2.1 If you reference assemblies located in the global assembly cache (GAC), the configuration for the Validation Application Block will not be loaded. The default UnityContainerConfigurator looks for the ValidationBlockExtension type using a partial name. The type lookup will not succeed when the Enterprise Library assemblies reside in the global assembly cache, and the extension will not be added to the container. You must add it manually in your code. See the workaround here

6.3 Unity
6.3.1 Referencing types from GAC only works if you specify their fully-qualified names in the config file, not just the short names.
6.3.2 The Custom Attribute Matching Rule fails to match if the attribute is declared at the class level.
6.3.3 Chained Generics type parameters must appear in the exact same order. When configuring injection for chained generics, for example where type MyType<T> is injected with a SubClass<T>, the concrete type to inject at resolve time is computed by matching types positionally. If parameters do not match, for example if MyType <T, U> is injected with SubClass <U>), an error occurs at resolve time.
6.3.4 All solution files for Unity and Quickstarts have test projects which do not load for Visual Studio Standard. To workaround this issue delete the Unity.TestSupport project and Visual Studio will the solution files without the test projects, which are not supported. The Unity solution will have are build errors in the Unity.TestSupport project, which is a non test project but has test attributes.
6.3.5 If you attempt interception on a type with a hidden property you will get an exception.
6.3.6 You cannot inject dependencies into explicitly implemented properties.

6.4 Data Access Application Block
6.4.1 If you reference assemblies located in the global assembly cache (GAC), the configuration for the Data Access Application Block will not be read properly. See the synopsis and a workaround here

7. Configuration API

1.1 Configurations that are generated through fluent interfaces are not validated when they are created. If you enter validation information you may get errors at run-time.

8. Unit Tests

8.1 Some of the Enterprise Library unit tests use features of the Moq mock object library. We cannot include these libraries as part of the Enterprise Library 5.0 download. To run the unit tests, please download the binaries for Moq 3.1 (current version as of this writing is 3.1.416.3) and unpack the binaries and place them in this directory. Both the desktop and Silverlight binaries can be placed here. You will then be able to compile and run the unit tests.
8.2 When compiling Enterprise Library 5.0 on localized versions of the supported operating systems, you may experience 4 unit test failures in the test subsets Data.Test.VSTS and Caching.Test.VSTS. These appear to be globalization related issues with the tests themselves, not the underlying library.

9. Quickstarts

9.1 No Enterprise Library quickstarts are supplied with this release. Please use the Enterprise Library Hands-On Labs instead.

Last edited Apr 28, 2010 at 9:31 AM by gmelnik, version 35

Comments

Philippe Sep 29, 2011 at 6:26 PM 
As far as registering the Enterprise Library into the GAC is concerned, I was able to get around the issue caused by Enterprise Library's dynamic loading of assemblies using partial names. I simply a <qualifyAssembly> element to turn partial assembly runtime references to fully named references.

For example:

<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<qualifyAssembly partialName="Microsoft.Practices.EnterpriseLibrary.Data"
fullName="Microsoft.Practices.EnterpriseLibrary.Data, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</assemblyBinding>
</runtime>