[Last Call] Learn about multicloud storage options and how to improve your company's cloud strategy. Register Now

x
Solved

# Visual Studio 2013 Publish

Posted on 2016-10-04
Medium Priority
79 Views
I created an app to check a text file on the server and if the file on the client is different it runs an update program.

We have a new server so I published the app to that, when I run setup.exe it puts the shortcut in the start menu but does nor overwrite the original. I end up with 2 shortcuts 'myapp' and 'myapp - 1'.

Is there a way to publish this so it overwrites the original app? (or do I have to uninstall the old one 1st?)
0
Question by:HKFuey
[X]
###### Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

• Help others & share knowledge
• Earn cash & points
• 7
• 6

LVL 9

Expert Comment

ID: 41829017
I am guessing it is not being overwritten because it is being written to a different place.
You do not mention which O/S is on the client.
If you right click the 'myapp' shortcut, choose properties and go to the general tab, then note what the value of Location is. Then do the same to the 'myapp-1" shortcut and see if they are in two different places.
0

Author Comment

ID: 41829417
Hi Snowberry
I looked at properties, they were both C:\Users\user\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\MyFolder.

Uninstalling and reinstalling does fix my problem, it's just a pain.

I'm on Windows 7 and Visual Studio Express 2013. Maybe the Express version has limitations?
0

LVL 9

Expert Comment

ID: 41831007
How do you create the setup.exe? Is it via a second project within your Visual studio solution?
0

Author Comment

ID: 41831281
Hi Karen,
I am retiring the server I originally published the .exe to, so I just made a minor change in the code and published to a new location.
0

LVL 9

Expert Comment

ID: 41832811
No, I need to know where setup.exe comes from. Is it your compiled app?
0

Author Comment

ID: 41833121
Yes, from the compiled app.
0

LVL 9

Expert Comment

ID: 41836297
What do you mean?
Is it your app, or is it a separate setup program for your app?
Do you run setup.exe once, and then it installs yourapp.exe?
0

Author Comment

ID: 41836465
It is just a few lines of VB that I publish to a network share. This creates 3 files: 'publish.html', 'my program.application' and 'Setup.exe' and a folder called 'Application Files'.

This creates a 'Click Once' shortcut in the Start Menu of the PC: -

0

Author Comment

ID: 41836467
Sorry!
0

LVL 9

Expert Comment

ID: 41837878
okay then... how do you create the shortcut - what is your line(s) of code?
0

Author Comment

ID: 41837981
The problem is when I publish to the new server, it creates a second shortcut instead of overwriting the old one when I run setup.exe

I think I'll just have to uninstall the old version before installing the new, which checks for a version number text file on the new server: -

Public Class Form1

On Error GoTo ErrorTrap

'Create folder
Dim FOLDER_NAME As String = "C:\Program Files\*************\"
If (Not System.IO.Directory.Exists(FOLDER_NAME)) Then
System.IO.Directory.CreateDirectory(FOLDER_NAME)
End If

'Create version text file if does not exist
Dim FILE_NAME As String = "C:\Program Files\************\Text.txt"
If System.IO.File.Exists(FILE_NAME) = False Then
Dim fs As IO.FileStream = IO.File.Create(FILE_NAME)
fs.Close()
'Write to file
Dim objWriter As New System.IO.StreamWriter(FILE_NAME)
objWriter.WriteLine("1")
objWriter.Close()
End If

System.Diagnostics.Process.Start("C:\Program Files\***************\Access.accdb")
Else

'Change local file to match network file
Dim textFileStream As New IO.FileStream("C:\Program Files\************\text.txt", IO.FileMode.OpenOrCreate, IO.FileAccess.ReadWrite, IO.FileShare.None)
Dim myFileWriter As New IO.StreamWriter(textFileStream)
myFileWriter.Close()
textFileStream.Close()

'Open installer, this copies the updated Access program to the client (Created by an app 'Install Creator Pro')
System.Diagnostics.Process.Start("\\new server\**************\myAccessUpdaterSetup.exe")
End

End If

End

'If all fails just open Access
ErrorTrap:
MsgBox(Err.Description)
System.Diagnostics.Process.Start("C:\Program Files\************\Access.accdb")
End

End Sub
End Class

0

LVL 9

Accepted Solution

Karen earned 2000 total points
ID: 41839330
The problem is not in your vb code - the problem is in myAccessUpdaterSetup.exe.
I do not know about 'Install Creator Pro' so I cannot help exactly, but there must be some way to configure it to ensure the start menu entry gets overwritten.
Or you can delete the start menu entry before you run myAccessUpdaterSetup.exe, doing something like

           MsgBox("Your ****** program is out of date, please run the installer")

Dim ShortcutPath As String = System.Environment.GetFolderPath(Environment.SpecialFolder.StartMenu) & "\Programs\MyCompanyName\myapp.lnk"
If My.Computer.FileSystem.FileExists(ShortcutPath) Then
My.Computer.FileSystem.DeleteFile(ShortcutPath)
End If
'Open installer, this copies the updated Access program to the client (Created by an app 'Install Creator Pro')
System.Diagnostics.Process.Start("\\new server\**************\myAccessUpdaterSetup.exe")

0

Author Closing Comment

ID: 41839593
That looks a really good workaround. I will try it when I get time.
Thanks!
0

## Featured Post

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In my previous article (http://www.experts-exchange.com/Programming/Languages/.NET/.NET_Framework_3.x/A_4362-Serialization-in-NET-1.html) we saw the basics of serialization and how types/objects can be serialized to Binary format. In this blog we wi…
Creating an analog clock UserControl seems fairly straight forward.  It is, after all, essentially just a circle with several lines in it!  Two common approaches for rendering an analog clock typically involve either manually calculating points with…
In this video you will find out how to export Office 365 mailboxes using the built in eDiscovery tool. Bear in mind that although this method might be useful in some cases, using PST files as Office 365 backup is troublesome in a long run (more on t…
Sometimes it takes a new vantage point, apart from our everyday security practices, to truly see our Active Directory (AD) vulnerabilities. We get used to implementing the same techniques and checking the same areas for a breach. This pattern can re…
###### Suggested Courses
Course of the Month13 days, 2 hours left to enroll