Prevent to install WIX Setup on XP - asp.net

I have a WIX setup MSI. I want to prevent it to install on WIN XP.
I was using the InstallPrivileges property of WIX but it did not solve my problem:-
<Package InstallerVersion="200" Platform="$(var.Platform)" InstallPrivileges="limited" />
How can i achieve this?

Priyanka, You are going in wrong direction.
InstallPrivileges attribute is use to specify the privileges required to install the package on Windows Vista and above.
Windows vista onward by default runs most applications with least privilege access (non-admin) in an attempt to keep both malicious virus code and inexperienced end users from damaging the system.
limited and elevated value from InstallPrivileges attribute specifies whether to use elevated privileges or not.
If you select Limited installer will run without Admin privileges and if you use elevated then your installer will ask for administrator privileges using UAC prompt.This attribute will be neglected if you are running it on windows xp (NOT SURE).
And Now to completely block your installer to run on windows XP then you need to use VersionNT property which will detect the version of the user's operating system.
The following sample demonstrates how to use this property to block installation of an application on operating systems prior to Windows Vista/Windows Server 2008
<Condition Message="This application is only supported on Windows Vista, Windows Server 2008, or higher.">
<![CDATA[Installed OR (VersionNT >= 600)]]>
</Condition>
Refer VersionNT values to choose for Which OS you want to block your installer.
refer for more info How To: Block Installation Based on OS Version

Related

How do I test running my ASP.NET web app as a 64-bit process on a development server with VS2010?

My task is simple: I need to test my ASP.NET web application in a 64-bit environment on my development machine. (At this point I don't even ask about running it through a debugger. All I need is to run it in a 64-bit process.)
So I created a stock C# Web Application in Visual Studio 2010 and adjusted its properties as such:
I then did Ctrl+F5 (or run without debugging) and IE loaded up and hangs up like so:
What am I doing wrong here?
PS. Running it on Windows 7 Ultimate (64-bit).
We had the same problem and when the team jumped to Visual Studio 2012, this registry key was really useful to us :
you can add a registry key to force visual studio to use the 64 bits version of iisexpress.exe ; unfortunately for you, it is a VS2012-only solution.
reg add HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\WebProjects
/v Use64BitIISExpress /t REG_DWORD /d 1
Then restart Visual Studio and tick [X] Use IIS Express in your settings.
(see also the source).
UPDATE: For reference, in Visual 2013, this option can be found in the interface : Options/Projects and Solutions/Web Projects/Use the 64 bit version of IIS Express for web sites and projects
In IIS make sure the Application Pool, Advance Settings, Enable 32-Bit Applications = false
If this setting is true then the worker process will run as 32bit WOW64 process.
Chris
No settings required in project or solution level. I am developing WebApp on VS2010 on 32 bit and 64-bit machines simultaneously. Actually We are working on SVN and our few machines have Win7 32-bit and my few mates have Win7-64bit laptops. But there we haven't faced any such issue while compiling the app on two different machines and Even on the live server, it runs butter smooth. Hardly care about the bit and bytes.
To verify a test run. Publish your code and host in your local IIS or Cassini Webserver and access it over LAN.
Also if possible revert back solution and project settings to its original configuration settings. Generally, We do not need to change target until and unless it is strictly required. As, AFAIK, It compiles the assembly under "Any CPU" as target, which is eligible for all i.e. IA, X64 and X86..
Finally, if you are coming across any error, please do post it here. It will help you and us as well.
First of all how to do you know if your IIS process is running your website as 32-bit or 64-bit as of now?
Open Task manager to check the bitness of w3wp.exe. If your machine is 64-bit then IIS will run 64-bit by default. Your problem seems to be something else. If bitness is the issue then you won't even come this far. Check IIS logs (c:\inetpub\logs{website-ID}{date})... that might give you some pointers. If there is nothing in there, check event viewer. If nothing then check if the virtual directory is actually created in IIS Manager under Default Web Site.
Have you actually tested if IIS (sans ASPX) is functional? http:// localhost ? does that work? if that is working then I would recommend checking if your ASP.NET modules are properly installed within IIS.
Hope this Helps.

Create Installer for an ASP.NET web APP for multiple environments

I have created an ASP.NET website which accesses a DB. The DB can will be alrady installed at target machine. It can be anything from SQL server 2000 to SQL server 2008. Further more the target OS can be anything from Windows server 2000 to Windows 7. I have kept the target .Net framework version as .Net 2.0 to keep matters simple. Also, the target machine can be x86 or x64 or Itanium.
Do I need to create separate builds for different target platforms?
How do I create an Installer which will :
Put this website on a Virtual Directory of IIS server(can be any IIS version)
Detect the target platform and install the appropriate build
I need to do this either using the standard MSI installer of VS2008 or using WiX or any open source installer for that matter. Please help me with this since I am new to deployment projects.
Thanks
You can use softwares like InstallShield in order to create your installer. but InstallShield is not for free I think.
such programs have their own scripting language that simplify the operations that you want to do, like detecting which operating system is installed or which SQL Server version is installer, beside that they allows you to communicate with a certain function in a dll. You can call this function to do some logic or some validation.
You can use WiX to create an MSI that does what you've listed. It is free, and as well as including functionality for what you want also allows custom scripting for any custom logic needed.

"The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine"...DNN

I'm trying to get a new DotNetNuke site up and running on our 64-bit server, and I'm encountering the following error message:
"The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine"
I know from experience that you run into this when you target a 64-bit assembly on a 64-bit machine (there is no 64 bit OLE-DB provider currently). In that case, I simply target the x86 in Visual Studio and everything works fine.
But in this case, the site uses dynamic compilation, so there's no simple place to specify that I need to target x86. Any thoughts?
TIA.
You could change your app pool that you're running that site under to run as a 32 bit application. In the IIS7 manager, its under "Advanced Settings" of your app pool, and then set "Enable 32-bit Applications" to true.
You could also do this with AppCmd from a console with the following:
appcmd apppool set /apppool.name:MyNukeSite /enable32BitAppOnWin64:true
In IIS6 - you could try something like this (2 lines here, run aspnet_regiis when finished changing the metabase value)...
cscript %SystemDrive%\inetpub\AdminScripts\adsutil.vbs set w3svc/AppPools/Enable32bitAppOnWin64 1
aspnet_regiis.exe -i
See the following for more info:
http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/5d306956-b2a2-4708-9bb9-72a395d474bb.mspx?mfr=true
http://blogs.msdn.com/irfanahm/archive/2008/12/15/how-to-use-a-32-bit-dll-in-asp-net-page-which-is-hosted-on-64-bit-iis.aspx
http://support.microsoft.com/kb/895976
HI, Now the Microsoft has released the 2010 Office System Driver Beta: Data Connectivity Components which is supported both in 32 bit as well as 64 bit OS. So using this driver instead of the traditional Microsoft.Jet.OLEDB.4.0 driver will give us a 64 bit application running on a 64 bit server (that is what we really need).
Though this is in beta, it worked fine for me.
You can download this driver from 2010 Office System Driver Beta: Data Connectivity Components
Thnks
You shouldn't try to target your application to 32-bit in which case you are losing the advantages of using 64-bit system. As aaa has pointed out, you can use the latest Access Database Engine 2010 to address this issue. Please refer to my blog post for complete solution.
Hope it helps.

No applications available to install on Web Platform Installer on Vista x64

When I use the Web Platform installer on Vista x64 Business it doesn't list any of the applications (such as DotNetNuke or SubText).
Has anyone got it to work on Vista 64?
I'm running Vista Home Premium x64 SP2 and can see plenty of web applications with no problem. Is it possible there is some prerequisite software or libraries you need to install (say, using the WPI) before you can install web applications?
The first step I'd take is to uninstall WPI, restart your computer, and reinstall WPI. It sounds so basic but the simplest fixes are so often sufficient.
Is everything on your system up-to-date?
It should work with Vista x64 Business edition. The application catalog is downloaded from the web via http requests. You might try using a tool like Fiddler Web Debugger to determine if the app is able to connect properly. You may have a firewall or network issue preventing it from fetching the list of applications.

Missing windows authentication IIS component because of Windows Vista Home Premium edition... any fixes out there?

Apparently Windows Vista Home Basic and Premium both do not ship with integrated windows authentication for IIS (You need Business edition)... so does anyone know how to get windows authentication installed for IIS?
I went into Programs and Features > Turn Windows Features on or off. Then in the Windows Features popup I navigated to... Internet Information Serivces > World Wide Web Services > Security > ???
Under security the only options that were there are:
Basic Authentication
IP Security
Request Filtering
URL Authorization
I found this fix but it gave me this error message:
The upgrade Patch cannot be installed by Windows Installer service because the program to be upgraded may be missing, or the upgrade patch may update a different version of the program. Verify that the program exists on your computer and that you have the correct upgrade patch.
So that makes me think it's because the fix is for Visual Studio 2005, and I'm using Visual Studio 2008. Anyone know a fix that applies to Visual Studio 2008?
I don't think you can get it to work in Vista Home Premium because the Home editions do not support domain authentication; only workgroup authentication. You have to get one of the Business editions or Ultimate.

Resources