The Microsoft .NET Framework version 2.0 redistributable package (released 2005-11-07)
improves scalability and performance of applications with improved caching, application deployment and updating with ClickOnce, support for the broadest array of browsers and devices with ASP.NET 2.0 controls and services.
Selected Test Results (selected in 'Test Results' table below)
What works
Installation using winetricks.
What does not
Installation out-of-the-box with the default Windows version in Wine (Windows XP).
URL_ParseUrl FIXME messages on console when running/installing .NET apps are harmless and can be safely ignored. Example console output:
fixme:shell:URL_ParseUrl failed to parse L"mscorlib"
.NET installer stops early with component required message
Where "component" is one of the following:
"IE5.01 or higher version is required"
"Microsoft Windows Installer 3.0" is the requirement
Possible causes:
inconsistent or broken WINEPREFIX (native overrides, services/device drivers). See Bug 16445 for such case.
wineboot problem (failed update of WINEPREFIX/timeout/permissions)
Solution:
First try to remove your old WINEPREFIX (rm -rf ~/.wine) and create a new one by rerunning Winetricks .
If the problem persists, run wineboot manually:
$ wineboot --update
Unhandled Exception: System.AccessViolationException: Attempted to read or write protected memory....
If you get a crash/backtrace like the following in console:
Unhandled Exception: System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
at System.Drawing.SafeNativeMethods.Gdip.GdipCreateFontFromLogfontW(HandleRef hdc, Object lf, IntPtr& font)
at System.Drawing.Font.FromLogFont(Object lf, IntPtr hdc)
at System.Drawing.Font.FromHfont(IntPtr hfont)
at System.Drawing.SystemFonts.get_DefaultFont()
at System.Windows.Forms.Control.get_Font()
....
You most likely have a corrupted or non-conformant truetype font in your system. These are the most notorious ones:
Either remove that font files manually (not just renaming) or use your Linux package manager. On Ubuntu something like:
$ sudo apt-get remove ttf-oriya-fonts
Method 2: Winetricks to update fonts
Make sure you use a recent version of winetricks script to make sure you get all font fixes required for .NET.
After winetricks script update, execute the following command in console (if you don't want to reinstall everything in new WINEPREFIX):
$ sh winetricks fontfix
'winetricks fontfix' will install working versions of truetype fonts known as broken (like the notorious "ukai"). Don't worry, your original (broken) ones from your Linux distribution will be left
unchanged. The "good" fonts get installed into Wine/Windows font directory which has
higher font search path precedence - so the good ones will be pulled in when
found before defaulting to Linux distribution ones.
If the application still crashes with the workarounds applied showing the above backtrace file a bug with bugzilla.
Extraction Failed - Unable to find a volume for file extraction (old Wine version or broken WINEPREFIX)
Reason #1
You used an old Wine version (< 1.1.7). Upgrade to Wine >= 1.1.7 which fixed this specific problem.
For Wine version < 1.1.7 use winetricks step:
$ wget http://kegel.com/wine/winetricks && sh winetricks volnum
Reason #2
This message can also result from installing into a broken WINEPREFIX. The following console message is an indication of a WINEPREFIX problem:
err:process:__wine_kernel_init boot event wait timed out
Remove your WINEPREFIX and create a new one.
Font display showing only symbols and garbage after winetricks fontfix step (Samyak Oriya override)
Some winetricks scripts install a newer version of "Samyak Oriya" meant as Linux system override for broken font version ('fontfix' step).
Because this updated font gets installed into "c:\\windows\\fonts" it will always be selected first when a requested font or substitute is not found (font path precedence enforces order in list).
This might cause garbage symbol display. To work around this, please remove the font "c:\\windows\\fonts\\Samyak-Oriya.ttf" if it exists.
Additionally make sure you update or remove the Samyak-Oriya font installed in your Linux Distribution. It often causes more harm than good when using native gdiplus (especially for .NET apps).
On Ubuntu something like:
$ sudo apt-get remove ttf-oriya-fonts
/home/yourlogin/.wine is not owned by you / (Permission denied)
Never run wine as root (su, sudo)! Wine doesn't require to be run as root!
You will screw your WINEPREFIX and possibly other things up. If you have run Wine as root you need to:
$ sudo rm -rf ~/.wine
and then run winecfg to set Wine folder structure back up. If you used winetricks script as root you might also need to:
$ sudo rm -rf ~/winetrickscache
Again: Just run wine as regular user and all should be fine.
HOWTO
Make sure you operate on a clean WINEPREFIX (~/.wine)!
Method 1: Installation by using 'winetricks' script
Use this option for easy installation of .NET 2.0 Framework. Winetricks will take care of all needed installation prerequisites and work around some problems.
$ wget http://kegel.com/wine/winetricks
$ sh winetricks corefonts dotnet20
You need cabextract utility (project website here) for winetricks corefonts step. Make sure it's installed locally.
Ubuntu:
$ sudo apt-get install cabextract
Fedora:
$ sudo yum install cabextract
Method 2: Manual installation
1.) Make sure the unicode casing table "l_intl.nls" is put into ~/.wine/drive_c/windows/system32 directory (Bug 10467). The following command does this for you:
Some Applications bundle the .NET Framework Redistributables and try to install it on their own if not present.
Don't let the application install .NET Framework 2.0, this won't work! Use Method 1 or 2 to install .NET Framework 2.0 before running the app installer!
err:msi:HANDLE_CustomType34 Unable to execute command
If you see an error message at the end of the installer in console like this:
err:msi:HANDLE_CustomType34 Unable to execute command L"\"C:\\windows\\Microsoft.NET\\Framework\\netfxsbs20.exe\" /install"
If you see the same exception with a different culture and you are already
using an up-to-date winefile a bug with bugzilla.
ngen.exe hangs while compiling a particular assembly (out of file descriptors)
Reported in Bug 16258. It seems the PE image generator runs out of file descriptors while writing out native images. This is a bug in the Microsoft .NET 2.0 Framework. Use the following workaround if you encounter this bug:
$ su
# ulimit -n 4096
# su your_username
$ wine your_installer
Unhandled exception 0xc06d007e at address xxx while installation (message box)
Upgrade your Wine version to >= 1.1.13. This problem occurred when .NET 2.0 Framework is installed with .NET 1.1 Framework already installed in WINEPREFIX.
Unattended installation of .NET Framework 2.0
See HOWTO Methods: refer to "manual" installation method what steps are needed before running the installer in unattended mode
Example command lines you can use to perform unattended installations for the .NET Framework 2.0 installation:
Silent installation
These
command lines will run the .NET Framework 2.0 setup in fully silent
mode. The setup package will extract to a temporary location and
installation will begin with no user interaction and no visible UI. The
user will see no visible indication that setup is running.
$ wine setup.exe /q:a /c:"install.exe /q"
Standard unattended installation
These
command lines will run the .NET Framework 2.0 setup in standard
unattended mode. The setup package will extract to a temporary location
and installation will begin with no user interaction. A progress dialog
will appear on the screen during installation, and it will disappear
when setup is complete. Errors encountered during installation might
pop up message boxes during installation if they occur.
$ wine setup.exe /q:a /c:"install.exe /qb"
Unattended installation with no cancel button available in the UI
These
command lines will run the .NET Framework 2.0
setup in unattended mode with no cancel button. The behavior of setup
is the same as with the command lines above except the cancel button
will be hidden on the progress page during installation. This allows
the user to know that a setup is in progress but prevent them from
cancelling it (unless they kill the process).
$ wine setup.exe /q:a /c:"install.exe /qb!"
MSVCR80.dll failed to initialize, LdrInitializeThunk Main mscorsvw.exe failed
If you encounter these messages in console:
err:module:attach_process_dlls "MSVCR80.dll" failed to initialize, aborting
err:module:LdrInitializeThunk Main exe initialization for L"C:\\windows\\Microsoft.NET\\Framework\\v2.0.50727\\mscorsvw.exe" failed, status c0000142
You installed .NET in a broken WINEPREFIX or some application installer messed the WINEPREFIX up.
Make sure you operate on a clean WINEPREFIX (~/.wine)! Always use a fresh WINEPREFIX for .NET installations. See appdb entry HOWTO for instructions.
Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object
If you get a crash/backtrace like this in console:
Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object.
at System.Resources.ResourceManager.GetSatelliteAssembliesFromConfig()
at System.Resources.ResourceManager.TryLookingForSatellite(CultureInfo lookForCulture)
at System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo culture, Boolean createIfNotExists, Boolean tryParents)
at System.Resources.ResourceManager.GetString(String name, CultureInfo culture)
at System.Environment.ResourceHelper.GetResourceStringCode(Object userDataIn)
at System.Environment.GetResourceFromDefault(String key)
at System.TypeInitializationException..ctor(String fullTypeName, Exception innerException)
at System.Globalization.TextInfo.GetNativeTextInfo(Int32 cultureID)
at System.Globalization.TextInfo.get_InvariantNativeTextInfo()
at System.String.Compare(String strA, Int32 indexA, String strB, Int32 indexB, Int32 length, StringComparison comparisonType)
at System.Security.Util.URLString.PreProcessForExtendedPathRemoval(String url, Boolean isFileUrl)
at System.AppDomainSetup.NormalizePath(String path, Boolean useAppBase)
at System.AppDomainSetup.SetupDefaultApplicationBase(String imageLocation)
at System.AppDomain.SetupFusionStore(AppDomainSetup info)
at System.AppDomain.SetupDomain(Boolean allowRedirects, String path, String configFile)
wine: Unhandled page fault on read access to 0x00000000 at address 0x2de297f (thread 0019), starting debugger...
Please read appdb entry HOWTO more carefully! This is bug 10467.
If you followed appdb HOWTO and this problem still occurs you most likely have a corrupted "l_intl.nls" file in your winetricks cache. Update your winetricks script to newer version (contains checksum for detection of corrupted download) or remove "l_intl.nls" from "dotnet20" folder in "winetrickscache" and repeat the winetricks step.
Microsoft .NET Framework 2.0 has encountered a problem during setup.
If you get a message like this in console:
err:msi:ITERATE_Actions Execution halted, action L"InstallFinalize" returned 1603
and the error information dialog ("Report" button) contains the following codes:
This 'Fatal Execution Engine Error' (80131506)
is pretty general and can be caused by many things, for example by bug 10506.
.NET Framework Service Pack 1 fails
This is
bug 16956 (applying transforms to Media table with same disk id).
You can try to fake the service pack install by using following registry keys (assuming you already have the appropriate .NET Framework version installed). This is not a solution if your application depends on some service pack specific feature!
Lantronix Device Installer 4.2
by wineatic on Wednesday September 3rd 2008, 10:28
I have successfully installed the .NET Framwork 2.0 on Wine 1.1.3 under Ubuntu 8.04. Lantronix Device Installer 4.2 installs is free software to control and configure several Lantronix network devices. It is based on the .Net Framework 2.0.
The software installs fine. But when running it reports that there is no network connection. But it displays eth0 with it's correct ip address. Of course there is an active and working network connection on the my test machine.