473,774 Members | 2,176 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Creat an Installation package for client and server

I have developed an application using C# under .NET 2.0 framework. It is
almost done and it is time for me to think about deploymnet to all users. I
don't have any background about this and would like to see if anyone can help
me get started. I have read some about clickonce deployment and not sure
much about this yet. Thanks for your help.

Nov 21 '06 #1
20 3156
Hi,

Assuming that you have written a client application and a server
application, you should have two separate installation packages unless you
want a fair number of servers to be clients as well.

ClickOnce works quite nicely, but you may have to configure each client to
increase the permission level for your application if it needs FullTrust,
for example. For this reason, it's not recommended as a public installation
method, so you should use a "Setup and Deployment project" instead if you
need higher levels of trust than normally allowed by web installations and
if you don't have access to configure the security levels on each client.

You can create a ClickOnce installation easily in VS 2005, which will also
help to deploy the files to your server. The clients simply need to connect
to your server the first time to install the application and they'll
automatically receive updated software each time a newer version is
available from the server, making maintenance much easier for you and almost
transparent to the end-users.

"ClickOnce Deployment Overview"
http://msdn2.microsoft.com/en-us/library/142dbbz4.aspx

If you are only installing the server software once then you probably won't
need a ClickOnce deployment for that. Just create a "Setup and Deployment"
project in VS 2005.

"Setup and Deployment Projects"
http://msdn2.microsoft.com/en-us/lib...9t(VS.80).aspx

--
Dave Sexton

"piggy" <pi***@discussi ons.microsoft.c omwrote in message
news:C1******** *************** ***********@mic rosoft.com...
>I have developed an application using C# under .NET 2.0 framework. It is
almost done and it is time for me to think about deploymnet to all users.
I
don't have any background about this and would like to see if anyone can
help
me get started. I have read some about clickonce deployment and not sure
much about this yet. Thanks for your help.

Nov 21 '06 #2
Dave,

Thanks for your response.

I have tried to setup 2 extra setup projects in my application solution. 1
is for client setup and the other is for server setup. As soon as i am done
with this, i have setup.exe and clientsetup.msi under \bin\debug directory
for both client and server. For deployment, i will hand those folder to the
end users and they will run the install. What if i have release a new
version?

About clickonce, it is the great solution for automatically deployment but i
am concern about granting permission when needed. As you mentioned early,
clickonce is not recommended as a public installation. So what is your
recommendation on this? My users are over the state. Thanks,
"Dave Sexton" wrote:
Hi,

Assuming that you have written a client application and a server
application, you should have two separate installation packages unless you
want a fair number of servers to be clients as well.

ClickOnce works quite nicely, but you may have to configure each client to
increase the permission level for your application if it needs FullTrust,
for example. For this reason, it's not recommended as a public installation
method, so you should use a "Setup and Deployment project" instead if you
need higher levels of trust than normally allowed by web installations and
if you don't have access to configure the security levels on each client.

You can create a ClickOnce installation easily in VS 2005, which will also
help to deploy the files to your server. The clients simply need to connect
to your server the first time to install the application and they'll
automatically receive updated software each time a newer version is
available from the server, making maintenance much easier for you and almost
transparent to the end-users.

"ClickOnce Deployment Overview"
http://msdn2.microsoft.com/en-us/library/142dbbz4.aspx

If you are only installing the server software once then you probably won't
need a ClickOnce deployment for that. Just create a "Setup and Deployment"
project in VS 2005.

"Setup and Deployment Projects"
http://msdn2.microsoft.com/en-us/lib...9t(VS.80).aspx

--
Dave Sexton

"piggy" <pi***@discussi ons.microsoft.c omwrote in message
news:C1******** *************** ***********@mic rosoft.com...
I have developed an application using C# under .NET 2.0 framework. It is
almost done and it is time for me to think about deploymnet to all users.
I
don't have any background about this and would like to see if anyone can
help
me get started. I have read some about clickonce deployment and not sure
much about this yet. Thanks for your help.


Nov 21 '06 #3
Hi,
I have tried to setup 2 extra setup projects in my application solution.
1
is for client setup and the other is for server setup. As soon as i am
done
with this, i have setup.exe and clientsetup.msi under \bin\debug directory
for both client and server. For deployment, i will hand those folder to
the
end users and they will run the install. What if i have release a new
version?
Using the GAC for your shared assemblies can ease dependency issues with
concurrently installed versions of your application and updating the
installation package's codes (via the Properties Window) is recommended, but
the users will still have to obtain the latest installation package and
execute it themselves.

There is another property in Setup and Deployment projects that can be used
to tell the Installer whether your latest .msi should replace earlier
versions of the application. In my experience, this is usually desirable,
but that will depend on whether your end-users require the earlier versions
of your application due to dependencies in functionality or the format of
persisted state. You should be careful about introducing breaking changes
into your applications so that all earlier versions may be removed without
harm.
About clickonce, it is the great solution for automatically deployment but
i
am concern about granting permission when needed. As you mentioned early,
clickonce is not recommended as a public installation. So what is your
recommendation on this? My users are over the state. Thanks,
It's not recommended if your application can't deal with restricted security
settings because it will run "sand-boxed", unless configured by the client.
Otherwise, there should be no problem at all. Verify whether your
application can run sand-boxed.

If your clients are all known ahead of time then it might not have to be a
public installation. Here are a few options:

A. Create a VPN for your users to securely connect and download your
ClickOnce installation
B. Allow users to connect to a Virtual Server using Remote Desktop and run
the program from there (this is more complex and not usually desirable by
end-users)
C. Deploy the ClickOnce installation to a public server protected by some
security mechanism (such as Basic Authentication in IIS). You must assign
users names and passwords. The problem with this approach is that you won't
be able to perform automatic updates, IIRC. So your end-users would have to
download updates manually.

--
Dave Sexton
Nov 21 '06 #4
Dave,

I would like all the update will happen automatically. For example, when a
user launch an application, it first cheks to see if there is a new version,
if it is, a user will be asked to run the update, as soon as it is done, then
the app will be launched. Is that possible to do? Thanks,

"Dave Sexton" wrote:
Hi,
I have tried to setup 2 extra setup projects in my application solution.
1
is for client setup and the other is for server setup. As soon as i am
done
with this, i have setup.exe and clientsetup.msi under \bin\debug directory
for both client and server. For deployment, i will hand those folder to
the
end users and they will run the install. What if i have release a new
version?

Using the GAC for your shared assemblies can ease dependency issues with
concurrently installed versions of your application and updating the
installation package's codes (via the Properties Window) is recommended, but
the users will still have to obtain the latest installation package and
execute it themselves.

There is another property in Setup and Deployment projects that can be used
to tell the Installer whether your latest .msi should replace earlier
versions of the application. In my experience, this is usually desirable,
but that will depend on whether your end-users require the earlier versions
of your application due to dependencies in functionality or the format of
persisted state. You should be careful about introducing breaking changes
into your applications so that all earlier versions may be removed without
harm.
About clickonce, it is the great solution for automatically deployment but
i
am concern about granting permission when needed. As you mentioned early,
clickonce is not recommended as a public installation. So what is your
recommendation on this? My users are over the state. Thanks,

It's not recommended if your application can't deal with restricted security
settings because it will run "sand-boxed", unless configured by the client.
Otherwise, there should be no problem at all. Verify whether your
application can run sand-boxed.

If your clients are all known ahead of time then it might not have to be a
public installation. Here are a few options:

A. Create a VPN for your users to securely connect and download your
ClickOnce installation
B. Allow users to connect to a Virtual Server using Remote Desktop and run
the program from there (this is more complex and not usually desirable by
end-users)
C. Deploy the ClickOnce installation to a public server protected by some
security mechanism (such as Basic Authentication in IIS). You must assign
users names and passwords. The problem with this approach is that you won't
be able to perform automatic updates, IIRC. So your end-users would have to
download updates manually.

--
Dave Sexton
Nov 21 '06 #5
Hi,
I would like all the update will happen automatically. For example, when
a
user launch an application, it first cheks to see if there is a new
version,
if it is, a user will be asked to run the update, as soon as it is done,
then
the app will be launched. Is that possible to do? Thanks,
ClickOnce will do that, yes.

You could design that functionality into your own program. I'm not sure
what problems you'll run into since I've never tried myself, but I can't
imagine that it would be too difficult:

1. When the application starts check some persisted setting to see whether
the application should check for newer versions on the web
2. Call into a custom Web Service (on a well-known server) that informs your
application whether a new version is available
3. If so, download the new version and start the installer Process. If not,
open the application as normal.

You'll have to account for security if clients will not be on a private
network or VPN by requiring the clients to authenticate with the server that
hosts the Web Service and installation package.

Your customers will have to manually obtain the installation package for
your application from the web, but only the first time it's installed.

The benefit of this approach is that your application can run with the trust
of the end-user without them having to configure it first, however you'll
have to develop the feature yourself, including a web service.

--
Dave Sexton
Nov 21 '06 #6
Dave,

i have had this information in pieces. If you don't mind, could you put
together all the steps in order to complete the installation package? Thanks,

"Dave Sexton" wrote:
Hi,
I would like all the update will happen automatically. For example, when
a
user launch an application, it first cheks to see if there is a new
version,
if it is, a user will be asked to run the update, as soon as it is done,
then
the app will be launched. Is that possible to do? Thanks,

ClickOnce will do that, yes.

You could design that functionality into your own program. I'm not sure
what problems you'll run into since I've never tried myself, but I can't
imagine that it would be too difficult:

1. When the application starts check some persisted setting to see whether
the application should check for newer versions on the web
2. Call into a custom Web Service (on a well-known server) that informs your
application whether a new version is available
3. If so, download the new version and start the installer Process. If not,
open the application as normal.

You'll have to account for security if clients will not be on a private
network or VPN by requiring the clients to authenticate with the server that
hosts the Web Service and installation package.

Your customers will have to manually obtain the installation package for
your application from the web, but only the first time it's installed.

The benefit of this approach is that your application can run with the trust
of the end-user without them having to configure it first, however you'll
have to develop the feature yourself, including a web service.

--
Dave Sexton
Nov 21 '06 #7
Hi,

The links I posted in my original response should provide all the
information that you need. There are many possible steps depending upon
your requirements. It just doesn't make sense to go through all of them
here.

Basically, you have to go to the "Publish" tab in your project's properties
window and configure ClickOnce there. VS 2005 does everything for you so
it's really just a matter of configuration.

--
Dave Sexton

"piggy" <pi***@discussi ons.microsoft.c omwrote in message
news:58******** *************** ***********@mic rosoft.com...
Dave,

i have had this information in pieces. If you don't mind, could you put
together all the steps in order to complete the installation package?
Thanks,

"Dave Sexton" wrote:
>Hi,
I would like all the update will happen automatically. For example,
when
a
user launch an application, it first cheks to see if there is a new
version,
if it is, a user will be asked to run the update, as soon as it is
done,
then
the app will be launched. Is that possible to do? Thanks,

ClickOnce will do that, yes.

You could design that functionality into your own program. I'm not sure
what problems you'll run into since I've never tried myself, but I can't
imagine that it would be too difficult:

1. When the application starts check some persisted setting to see
whether
the application should check for newer versions on the web
2. Call into a custom Web Service (on a well-known server) that informs
your
application whether a new version is available
3. If so, download the new version and start the installer Process. If
not,
open the application as normal.

You'll have to account for security if clients will not be on a private
network or VPN by requiring the clients to authenticate with the server
that
hosts the Web Service and installation package.

Your customers will have to manually obtain the installation package for
your application from the web, but only the first time it's installed.

The benefit of this approach is that your application can run with the
trust
of the end-user without them having to configure it first, however you'll
have to develop the feature yourself, including a web service.

--
Dave Sexton

Nov 21 '06 #8
Dave,

i have another question about choosing a ClickOnce Update strategy. My app
is used by state troopers. They only have high bandwidth network connections
when they are in the offices. Low bandwidth is at all time when they are on
the roads. I know there are three ways that we can do. 1) checking for
updates after application startup 2) checking for updates before applicaton
startup 3) Making udpates required. The first one is best for low bandwidth
and the second one is best for high bandwidth. In my case, the network
connection is changing based on where they are. Some times they will have no
network coverage at all if they are in the far mountains for example.
Thanks,

"Dave Sexton" wrote:
Hi,

The links I posted in my original response should provide all the
information that you need. There are many possible steps depending upon
your requirements. It just doesn't make sense to go through all of them
here.

Basically, you have to go to the "Publish" tab in your project's properties
window and configure ClickOnce there. VS 2005 does everything for you so
it's really just a matter of configuration.

--
Dave Sexton

"piggy" <pi***@discussi ons.microsoft.c omwrote in message
news:58******** *************** ***********@mic rosoft.com...
Dave,

i have had this information in pieces. If you don't mind, could you put
together all the steps in order to complete the installation package?
Thanks,

"Dave Sexton" wrote:
Hi,

I would like all the update will happen automatically. For example,
when
a
user launch an application, it first cheks to see if there is a new
version,
if it is, a user will be asked to run the update, as soon as it is
done,
then
the app will be launched. Is that possible to do? Thanks,

ClickOnce will do that, yes.

You could design that functionality into your own program. I'm not sure
what problems you'll run into since I've never tried myself, but I can't
imagine that it would be too difficult:

1. When the application starts check some persisted setting to see
whether
the application should check for newer versions on the web
2. Call into a custom Web Service (on a well-known server) that informs
your
application whether a new version is available
3. If so, download the new version and start the installer Process. If
not,
open the application as normal.

You'll have to account for security if clients will not be on a private
network or VPN by requiring the clients to authenticate with the server
that
hosts the Web Service and installation package.

Your customers will have to manually obtain the installation package for
your application from the web, but only the first time it's installed.

The benefit of this approach is that your application can run with the
trust
of the end-user without them having to configure it first, however you'll
have to develop the feature yourself, including a web service.

--
Dave Sexton


Nov 22 '06 #9
Hi,

My suggestion would be to choose the approach that works best for all
possible situations, which I believe is option 1. In this case, end-users
will have to restart the application for any updates to take affect, but
they'll still be downloading at full-speed when connected to a
high-bandwidth network and when they are mobile it's obviously the best
choice.

--
Dave Sexton

"piggy" <pi***@discussi ons.microsoft.c omwrote in message
news:BF******** *************** ***********@mic rosoft.com...
Dave,

i have another question about choosing a ClickOnce Update strategy. My
app
is used by state troopers. They only have high bandwidth network
connections
when they are in the offices. Low bandwidth is at all time when they are
on
the roads. I know there are three ways that we can do. 1) checking for
updates after application startup 2) checking for updates before
applicaton
startup 3) Making udpates required. The first one is best for low
bandwidth
and the second one is best for high bandwidth. In my case, the network
connection is changing based on where they are. Some times they will have
no
network coverage at all if they are in the far mountains for example.
Thanks,

"Dave Sexton" wrote:
>Hi,

The links I posted in my original response should provide all the
information that you need. There are many possible steps depending upon
your requirements. It just doesn't make sense to go through all of them
here.

Basically, you have to go to the "Publish" tab in your project's
properties
window and configure ClickOnce there. VS 2005 does everything for you so
it's really just a matter of configuration.

--
Dave Sexton

"piggy" <pi***@discussi ons.microsoft.c omwrote in message
news:58******* *************** ************@mi crosoft.com...
Dave,

i have had this information in pieces. If you don't mind, could you
put
together all the steps in order to complete the installation package?
Thanks,

"Dave Sexton" wrote:

Hi,

I would like all the update will happen automatically. For example,
when
a
user launch an application, it first cheks to see if there is a new
version,
if it is, a user will be asked to run the update, as soon as it is
done,
then
the app will be launched. Is that possible to do? Thanks,

ClickOnce will do that, yes.

You could design that functionality into your own program. I'm not
sure
what problems you'll run into since I've never tried myself, but I
can't
imagine that it would be too difficult:

1. When the application starts check some persisted setting to see
whether
the application should check for newer versions on the web
2. Call into a custom Web Service (on a well-known server) that
informs
your
application whether a new version is available
3. If so, download the new version and start the installer Process.
If
not,
open the application as normal.

You'll have to account for security if clients will not be on a
private
network or VPN by requiring the clients to authenticate with the
server
that
hosts the Web Service and installation package.

Your customers will have to manually obtain the installation package
for
your application from the web, but only the first time it's installed.

The benefit of this approach is that your application can run with the
trust
of the end-user without them having to configure it first, however
you'll
have to develop the feature yourself, including a web service.

--
Dave Sexton



Nov 22 '06 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

3
2057
by: Rob Brown | last post by:
I put together an installation program and it works great the first time. The problem I have is that we want the users to be able to rerun the installation without needing to uninstall the older package first. How can I set up the package to overlay the existing installation without forcing the user to run an uninstall first? Thanks, Rob Brown
2
6268
by: mb12036 | last post by:
All- Having a problem installing a DB2 client on a machine running AIX version 5.0. Client appeared to install one time succesfully, then was uninstalled and a reinstall was attempted. For some reasons, it does not complete the reinstall. See the status report from the GUI installer at the end of this note. Errors are towards the bottom. Everything installed in /usr/opt for DB2 but the sqllib folder that is supposed to be created in...
1
8102
by: srihari | last post by:
Hai, I am trying to install IBM DB2 8.1 on Red Hat linux 8.0. My machine is Intel XEON 64bit. The installation went well except for the creation of tools catalog. When I tried to install the tools catalog as a post installation task I get some java error. $ db2 CREATE TOOLS CATALOG SYSTOOLS USE EXISTING DATABASE TOOLSDB FORCE SQL22209N The DB2 Administration Server encountered an unexpected Java error on host "". I have jdk1.3 already...
0
3029
by: Hernan Garber | last post by:
Hi, Attached, the installation log. Win 2k Server SP3 IE6SP1/SQL Server Installed Thanks Setup.exe: Setup.exe: ========== Logging started ==========
0
2202
by: Pavan | last post by:
I have my .NET code published in two servers http://server1/<ApplicationName>/Publish.htm and http://server2/<ApplicationName>/Publish.htm, and if i open IE on the client machine and type the link (http://server1/<ApplicationName>/Publish.htm) it would install the application in the client machine from server1. 1) Changing the server location on the same client machine (i.e. http://server2/<ApplicationName>/Publish.htm) should override...
6
1965
by: ljh | last post by:
(note: this is being posted to the dotnet groups because of thier expertise in app development and network administration) I cannot, for the life of me, remember the name of an application that I had a couple of years ago. It was an app that monitored the installation of another application and created a setup package that could be run on another PC to install the app almost like an Xcopy install. The app monitored all added or...
0
1267
by: Pavarotti | last post by:
I have a program written in VB.Net 2003 and have to make it work on a Client without the vs.net framework. I was wondering if there is a way in which I can include dotnetfx within my deployment package and have my installation package to execute the dotnetfx installation package prior to the installation of the main application. Is the above strategy possible, if so how do I have to go about it?
1
2650
by: aryan24 | last post by:
Hi, I am new to LINUX. I have down loaded MySQL-server-community-5.0.45-0.sles10.i586.rpm from the site and trying to install on suse linux 10.2. using this command #>rpm -i MySQL-server-community-5.0.45-0.sles10.i586.rpm it is giving an error file /usr/bin/perror from install of MySQL-server-community-5.0.45-0.sles10 conflicts with file from package mysql-client-5.0.26-12 file /usr/bin/replace from install of...
11
2153
by: Robin S. | last post by:
I've used phpinfo() to confirm settings for mySQL on our host server, and it's not returning accurate info. phpinfo() returns a mySQL client API version of 3.23.54 (uselss for me), where as a SELECT VERSION() query on the mySQL database returns version 5.0.27 (exactly what we need). I think there's something wrong with the mySQL library in PHP. Is there any more thurough method of seeing php's settings for mySQL? Obviously I don't...
0
9621
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
9454
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
9914
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
8939
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
0
6717
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5484
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
4012
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
2
3611
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
2852
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.