|
Hi,
I have a winforms application deployed through ClickOnce. I have published using VS 2008 but we are targetting .NET framework 2.0 andI have added .Net framework 2.0 as prerequisite and it works well on 32 bit machines. Weare using"Download prerequisites from component vendors web site" option. Contrary to what I have seen on other posts I do not have an option to choose .NET Framework 2.0 (All platforms: x86, x64, IA64) in the prerequisites dialog.
Anyway,it fails on 64 bit WinXp machine with the following message "This version of the .NET Framework 2.0 is not supported on a 64-bit operating system. Contact your application vendor." when .NET framework is not installed.
How can Iforce setup.exe to download 64 bit .Net framework only on 64 bit operation system? and still work in 32 bit also. Do I have to create a custom bootstrapper? Even with a custom bootstrapperI am unclear on how to specify that setup.exe should download 64 bit .net framework. Is it a different product name for 64 bit .NET framework 2.0? If so where can I get that info? If not, how would setup.exe know when to download 64 bit framework?
Any help in this regard is much appreciated. Thanks -Phaniraj |
| Phaniraj Monday, August 31, 2009 10:35 PM |
Hi Phaniraj, The prerequisites is managed and checked by the bootstrapper. Bootstrapper is coded in unmanaged C++. That is why it can be run on a computer without .NET Framework. Based on my experience, it is impossible to change its action in VS. We are now in the age of converting from x86 to x64. To avoid such kind of problem, the proper way is to specify these two kind of platform. Build two package, one for x64 and one for x86 is a better choose. Before doing this, you can use BMG to make x64 .NET Framework as your custom prerequisite and set it as prerequisite only for x64 version deployment. Hope this helps. If you have any other question, please feel free to tell me. Sincerely, Kira Qian Please mark the replies as answers if they help and unmark if they don't.- Marked As Answer byPhaniraj Wednesday, September 02, 2009 3:29 PM
-
|
| Kira Qian Wednesday, September 02, 2009 3:27 AM |
What is the CPU target of your application? Are you publishing it for "any cpu", or doing separate builds for 64-bit and x86? This is interesting because our application runs on both 64 and 32, and we've never had this problem with our .Net 2.0 prerequisite. It doesn't mean there's not a problem, it just means we've never run across this one. RobinDotNet Click here to visit my ClickOnce blog! |
| RobinDotNet Tuesday, September 01, 2009 4:08 AM |
The platform target is "any cpu". We do not have separate builds for 64 bit & x86.
The application runs fine on both 64 & 32. Our problem currently is that the ClickOnce Setup.exe does not download the correct version of .NET Framework on 64 bit eg:64 bit XP. Since .net framework for 64 bit is different from 32 bit, Iwould liketo know how I can get the correct version of .net framework based on processor architecture.
I tried using GenerateBootstrapper with MSBuild to create setup.exe which will also download .NET framework if needed.As beforeit seems to download 32 bit .net framework on 64 bit machine. Thanks
|
| Phaniraj Tuesday, September 01, 2009 3:11 PM |
Hi Phaniraj, The prerequisites is managed and checked by the bootstrapper. Bootstrapper is coded in unmanaged C++. That is why it can be run on a computer without .NET Framework. Based on my experience, it is impossible to change its action in VS. We are now in the age of converting from x86 to x64. To avoid such kind of problem, the proper way is to specify these two kind of platform. Build two package, one for x64 and one for x86 is a better choose. Before doing this, you can use BMG to make x64 .NET Framework as your custom prerequisite and set it as prerequisite only for x64 version deployment. Hope this helps. If you have any other question, please feel free to tell me. Sincerely, Kira Qian Please mark the replies as answers if they help and unmark if they don't.- Marked As Answer byPhaniraj Wednesday, September 02, 2009 3:29 PM
-
|
| Kira Qian Wednesday, September 02, 2009 3:27 AM |
Hi Kira,
Thanks for you input. It looks like the only option at this point is to have a package for each platform. I will take a look at BMG and how it can be used to accomplish this.
|
| Phaniraj Wednesday, September 02, 2009 3:29 PM |
Hi Kira,
I am trying to create customer bootstrappers for x64 platform. However BMG does not show .net framework 2.0 (x64) as an option for me to choose. I am trying this on 64 bit machine with VS 2008.
How can I create a custom bootstrapper with .net framework (x64) as a pre-requisite. I have not found packages for 64 bit .net framework in C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages or C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages The packages that I see here are for .net 2.0,.net 3.0 & .net 3.5
Am I missing something here? Thanks -Phaniraj |
| Phaniraj Thursday, September 03, 2009 8:57 PM |
Hi Phaniraj, Did you download .NET Framework 2.0 x64 from here "http://www.microsoft.com/DOWNLOADS/details.aspx?familyid=B44A0000-ACF8-4FA1-AFFB-40E78D788B00&displaylang=en" then made it as custom prerequisite in BMG? When use BMG, you need to run it as administrator because it will try to write file into system partition which is protected. In x64 OS computer, the bootstrapper is located in "C:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages". Do you find the x64 .NET Framework there? Sincerely, Kira Qian Please mark the replies as answers if they help and unmark if they don't. |
| Kira Qian Friday, September 04, 2009 1:52 AM |
Hi Kira,
I have installed .net framework 2.0 x64 but "C:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages" is empty.
I tried to create a MS Build project using BMG it does not show x64 .net framework.
The machine is running Win XP Professional 64 bit SP2.
I uninstalled VS 2008 & other .net frameworks, Then installed 64 bit framework but still now package for x64 framework in the folder.
At this point I am not sure how I can get package for x64 framework to show up. Thanks -Phaniraj
|
| Phaniraj Friday, September 04, 2009 9:49 PM |
You need to get the redistributable for .Net 2.0 x64 and then use the Bootstrapper Manifest Generator to create the prerequisite package. Then copy this prerequisite package to the same folder as the rest of the prerequisites for Visual Studio (the one you've noted above) and close and open VS and it will appear in the Prerequisites dialog.
Here's the post that has the BMG info: http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/92d68fc3-3c00-4435-9d45-f781aad89ad1
And here are some instructions on using it: http://jcrawfor74.wordpress.com/2008/02/27/bootstrap-manifest-generator-how-to-custom-pre-requisites/
RobinDotNet Click here to visit my ClickOnce blog! |
| RobinDotNet Saturday, September 05, 2009 4:34 PM |
Thanks for the input.
I do have a follow up question, when I create the package for .Net 2.0 x64 I would really like to use the Homesite property & not host the .Net 2.0 x64 on our servers. Is there a way to create the package this way? When I create the package using BMG, I am not sure what the Homesite URL should be, if I want it to be downloaded from microsoft location.
Thanks -Phaniraj |
| Phaniraj Tuesday, September 08, 2009 10:31 PM |
Hi Phaniraj, The full download link is as below. http://www.microsoft.com/DOWNLOADS/info.aspx?na=90&p=&SrcDisplayLang=en&SrcCategoryId=&SrcFamilyId=b44a0000-acf8-4fa1-affb-40e78d788b00&u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2fa%2f3%2ff%2fa3f1bf98-18f3-4036-9b68-8e6de530ce0a%2fNetFx64.exe Sincerely, Kira Qian Please mark the replies as answers if they help and unmark if they don't. |
| Kira Qian Wednesday, September 09, 2009 2:12 AM |
Thanks Kira,
I apologize for the delayed update. Is it possible to get the download location for .NET framework 2.0 (32 bit) also?
I have not been able to work on getting bootstrapper going. Thanks -Phaniraj |
| Phaniraj Wednesday, September 16, 2009 8:30 PM |
Set the URL in the BMG to the one above, and when you select it as a prerequisite, be sure to set "retrieve from vendor location". You can also put the redistributable anywhere on your server, set the URL to point to it, set the prerequisites to retrieve from vendor location, and it will use that URL to get the file. RobinDotNet Click here to visit my ClickOnce blog! |
| RobinDotNet Wednesday, September 16, 2009 10:40 PM |