Share via


Deploying Visual Basic .NET Applications

Posted December 4, 2003

Chat Date: December 2, 2003

Please note: Portions of this transcript have been edited for clarity

Introduction

Moderator: Ed_H (Microsoft)
Welcome to today’s chat on Deploying Visual Basic .NET Applications. We have members of the Visual Basic team here to answer your questions today. I will ask the hosts to introduce themselves.

Host: MWade (Microsoft)
My name is Mike Wade, and I am a developer with the Visual Basic team.

Host: PatBak (Microsoft)
Hi, I am a Tester on the VB Deployment Team.

Host: Toddap (Microsoft)
Greetings! I'm Todd Apley, Deployment test lead for Visual Studio.

Host: SteveHoag (Microsoft)
Welcome! I'm Steve Hoag, a Programmer / Writer on the Visual Basic .NET team, and I'm responsible for the Deployment documentation.

Moderator: Ed_H (Microsoft)
And I am Ed Hickey, VS Communities PM. Glad you all could make it today!

Start of Chat

Moderator: Ed_H (Microsoft)
Let's get started! Fire away with your questions for our hosts.

Host: SteveHoag (Microsoft)
Q: what should we do if we want to develop an autorun application on .net? Since it’s the first application the users see when inserting the CD, what if the user does not have .net framework installed?
A: The .NET Framework launch condition will check for the correct version of the framework, and if not installed you can prompt the user to install it.

Host: SteveHoag (Microsoft)
If you want to automatically install the framework, check out the .NET Framework Bootstrapper Plug-in, currently in Beta on GotDotNet:

Host: SteveHoag (Microsoft)
Q: Here is a question I think that will stimulate some responses. How will ClickOnce change deployment in .NET?
A: ClickOnce is a new technology in Visual Basic Whidbey that allows you to deploy and automatically update applications over an Intranet or the Internet. It is similar to what some people are doing today with href .exe's, but much, much easier.

Host: SteveHoag (Microsoft)
While it isn't appropriate for all applications (you wouldn't deploy MS Office with ClickOnce), it should make deployment much better for many line-of-business apps.

Host: SteveHoag (Microsoft)
Q: Care to elaborate? I think that one reason people shy away from href deployed applications is because of the lack of ease-of-use. What will ClickOnce give me over the current model?
A: I can't get too specific since we aren't even in Beta yet, but the main advantages are tight integration into the IDE, a better security model, and better control over how and when updates are processed.

Host: SteveHoag (Microsoft)
Q: By "href", are you referring to "No-touch deployment?"
A: Yes, some people refer to it as "No-touch deployment"

Host: SteveHoag (Microsoft)
Q: Today I saw someone who overed a one touch deployment on Interernet as an .msi file. I had to think about security and how activeX over Internet became a success how is that done with the new-one touch deployment over Internet
A: Deploying via .msi over the internet is NOT secure. MSI's can run any code via Custom Actions, so they require full trust (Admin rights).

Host: SteveHoag (Microsoft)
ClickOnce applications can request security permissions above and beyond the zone they come from, but the end user must grant permission much the same as ActivveX controls today.

Host: SteveHoag (Microsoft)
Q: Just curious - how does the "UpgradeCode" affect upgradeability?
A: From the docs: Specifies a shared identifier that represents multiple versions of an application, represented by a string GUID. This property is used by Windows Installer to check for installed versions of the application during installation.

Host: SteveHoag (Microsoft)
Caution The UpgradeCode should only be set for the first version; it should never be changed for subsequent versions of the application, nor should it be changed for different language versions. Changing this property will keep the

Host: SteveHoag (Microsoft)
DetectNewerInstalledVersion and RemovePreviousVersions properties from working properly.

Host: MWade (Microsoft)
Q: Josh: I have a setup project with the "RemovePreviousVersions" and "DetectNewerInstalledVersion" properties turned on. However, I upgrade and my client attempts to install the newer version, he must manually uninstall before the installer will let him install
A: This is likely an issue with the installer and how the previous versions were installed. If the application was installed for Everyone, the RemovePreviousVersions and DetectNewerInstalledVersions don't work, because the detection is done assuming...

Host: MWade (Microsoft)
...this install is done for "Just Me." I think there is a KB article about this, but I can't seem to find it.

Moderator: Ed_H (Microsoft)
Q: Is Dotfuscator the only way to obfuscate your code before distribution, and if not, what are some others that you would recommend?
A: There are several different obfuscators available, sorry I do not remember them right offhand. Dotfuscator is just the version that ships with VS.Net.

Host: SteveHoag (Microsoft)
Q: Can someone recommend a URL for instructions for securing a windows application?
A: There is an entire section in the Visual Studio docs devoted to security. You can start at the "Security Portal" page: https://msdn.microsoft.com/en-us/library/1787tk12(v=VS.71).aspx

Host: PatBak (Microsoft)
Q: Sorry for my ignorance - how do I get a log file when executing the MSI?
A: MSIEXEC /i MYSETUP.MSI /L*v LOGFILENAME.TXT

Host: SteveHoag (Microsoft)
Q: I did look at that page and I saw only things as user security, nothing how to prevent decompiling programs and the other things like that Ardeona did ask, can you be something more precise where we can find that on that page?
A: The following article provides a good overview: https://msdn.microsoft.com/en-us/library/aa289516(v=VS.71).aspx

Host: MWade (Microsoft)
Q: Another deployment question: If my application saves user settings to the application configuration file, will that file be overwritten if the application is upgraded or repaired?
A: The configuration file should not be touched because it is an unversioned file.

Host: PatBak (Microsoft)
Q: I have a setup project with the "RemovePreviousVersions" and "DetectNewerInstalledVersion" properties turned on. However, I upgrade and my client attempts to install the newer version, he must manually uninstall before the installer ...

Host: PatBak (Microsoft)
A: In addition to setting "RemovePreviousVersions" and "DetectNewerInstalledVersion" properties to true, the MSI Version property needs to be incremented.

Moderator: Ed_H (Microsoft)
This has been a GREAT chat. Thank you to everyone. Unfortunately, it is time to go. Thanks for participating, and we'll see you next time!

Moderator: Ed_H (Microsoft)

For further information on this topic please visit the following:

Newsgroups: microsoft.public.dotnet.languages.vb

VB .NET Transcripts: Read the archive of past VB .NET chats.

Website: Visit the Microsoft Visual Basic .NET site.

Top of pageTop of page