|
Hello,
Thank you so much for your code.
I'm facing a little problem with the file "Update.txt" and the the format that I have to fill in it.
can you please show me an example of file that I have to put within the remote server.
|
|
|
|
|
hello, I have one service made by myself, running in 10 computers on my local network.
i want to add autoupdate functionality to the service (is not a regular exe program, it works even if no user logged in).
can this dll perform this task?
I mean: autoupdate my windows service...?
thanks in advance,
-- modified 3-Sep-14 20:11pm.
|
|
|
|
|
Excellent. I also appreciate who gave C# versions in the follow sections. I will try it in my software.
usability & truth
|
|
|
|
|
Oi Eduardo,
tudo bem? (portuguese for how are you )
thanks for the code.
i updated it a bit by adding a comparefiles function when infoParam = "?" so it becomes 'updated only if it doesn't exist or file changed
regards,
Jason
|
|
|
|
|
G'day All,
First off, thanks for the code as I have been using this Auto Update functionality for over 6 months now and it's worked perfectly!
Now to the issue! This code has worked for me when the "client" part of my system is installed on Server or XP operating system and needs to auto upgrade. However, it won't auto update when it is installed on a VISTA operating system - in all three OS scenarios the "server" part of my system is installed on a Server 2003 OS.
I am in the process of setting up a development environment on a VISTA Enterprise system so I can step through my code but just wondering if anyone may know why the VISTA scenario fails? The user on the VISTA OS is an Administrator so it should not be a permissions thing. Also I have tried with a local Administrator and Domain Administrator account on the VISTA OS.
Any advise would be nice!
Cheers
Brendan
|
|
|
|
|
I'm not sure if anyone else has had problems using Application.Exit or Application.Restart but I could not get my application to work correctly until I used Environment.Exit(0)
Without using that method, my application would restart after the update but then get to a point and just close. I have yet to figure out why.
As an after thought, it may have something to do with my Shutdown mode and/or the fact that I have the application set to a single instance app.
Just thought I would spread this information.
Tim
|
|
|
|
|
I am having similar flakiness with a single-instance app. Thanks for the tip about Environment.exit(0). I plan to give that a try tomorrow.
|
|
|
|
|
It was the single instance app setting that was causing my problem.
|
|
|
|
|
Hey,
First of all when I download the Testprogram and DLL, when i try to open them in Visual Studios 2010 it tries to convert it and when it finishes there are errors while converting the program. Then the program does not run.
Second,
I am still lost on how to apply this to my program. I need like a step by step procedure on what to do with this.
Someone PLEASE HELP
Thanks
|
|
|
|
|
Imports System.IO
Imports System.Net
Imports System.Diagnostics
Imports System.Threading
Public Module AutoUpdate
Private m_RemotePath As String
Private m_UpdateFileName As String = "Update.txt"
Private m_ErrorMessage As String = "There was a problem runing the Auto Update."
' <File Name>;<Version> [' comments ]
' <File Name>[;<Version>] [' comments ]
' <File Name>[;?] [' comments ]
' <File Name>[;delete] [' comments ]
' ...
' Blank lines and comments are ignored
' The first line should be the current program/version
' from the second line to the end the second parameter is optional
' if the second parameter is not specified the file is updated.
' if the version is specified the update checks the version
' if the second parameter is an interrogation mark (?) the update checks if the
' file alredy exists and "don't" upgrade if exists.
' if the second parameter is "delete" the system try to delete the file
' "'" (chr(39)) start a line comment (like vb)
' Function Return Value
' True means that the program needs to exit because: the autoupdate did the update
' or there was an error during the update
' False - nothing was done
Public Sub CheckForUpdate()
Try
Dim b As Boolean = UpdateFiles(RemotePath)
If b Then
Application.Exit()
Else
MsgBox("You have the latest version of " + My.Application.Info.ProductName, MsgBoxStyle.OkOnly + MsgBoxStyle.Information)
End If
Catch ex As Exception
End Try
End Sub
Public Function UpdateFiles(Optional ByVal RemotePath As String = "") As Boolean
If RemotePath = "" Then RemotePath = m_RemotePath Else m_RemotePath = RemotePath
Dim Ret As Boolean = False
Dim AssemblyName As String = System.Reflection.Assembly.GetEntryAssembly.GetName.Name
Dim ToDeleteExtension As String = ".ToDelete"
Dim RemoteUri As String = RemotePath & AssemblyName & "/"
Dim MyWebClient As New WebClient
Try
' try to delete old files if exist
Dim s As String = Dir(My.Application.Info.DirectoryPath & "\*" & ToDeleteExtension)
Do While s <> ""
Try
File.Delete(My.Application.Info.DirectoryPath & "\" & s)
Catch ex As Exception
End Try
s = Dir()
Loop
' get the update file content
Dim Contents As String = MyWebClient.DownloadString(RemoteUri & UpdateFileName)
' Process the autoupdate
' get rid of the line feeds if exists
Contents = Replace(Contents, Chr(Keys.LineFeed), "")
Dim FileList() As String = Split(Contents, Chr(Keys.Return))
Contents = ""
' Remove all comments and blank lines
For Each F As String In FileList
If InStr(F, "'") <> 0 Then F = Strings.Left(F, InStr(F, "'") - 1)
If F.Trim <> "" Then
If Contents <> "" Then Contents += Chr(Keys.Return)
Contents += F.Trim
End If
Next
' rebuild the file list
FileList = Split(Contents, Chr(Keys.Return))
Dim Info() As String = Split(FileList(0), ";")
' if the name is correct and it is a new version
If My.Application.Info.DirectoryPath.ToLower & "\" & Info(0).ToLower = My.Application.Info.DirectoryPath.ToLower + "\" + My.Application.Info.ProductName.ToLower + ".exe" AndAlso _
GetVersion(Info(1)) > GetVersion(My.Application.Info.Version.ToString) Then
' process files in the list
For Each F As String In FileList
Info = Split(F, ";")
Dim isToDelete As Boolean = False
Dim isToUpgrade As Boolean = False
Dim TempFileName As String = My.Application.Info.DirectoryPath & "\" & Now.TimeOfDay.TotalMilliseconds
Dim FileName As String = My.Application.Info.DirectoryPath & "\" & Info(0).Trim
Dim FileExists As Boolean = File.Exists(FileName)
If Info.Length = 1 Then
' Just the file as parameter always upgrade
isToUpgrade = True
isToDelete = FileExists
ElseIf Info(1).Trim = "delete" Then
' second parameter is "delete"
isToDelete = FileExists
ElseIf Info(1).Trim = "?" Then
' second parameter is "?" (check if file exists and don't upgrade if exists)
isToUpgrade = Not FileExists
ElseIf FileExists Then
' verify the file version
Dim fv As FileVersionInfo = FileVersionInfo.GetVersionInfo(FileName)
isToUpgrade = (GetVersion(Info(1).Trim) > GetVersion(fv.FileMajorPart & "." & fv.FileMinorPart & "." & fv.FileBuildPart & "." & fv.FilePrivatePart))
isToDelete = isToUpgrade
Else
' the second parameter exists as version number and the file doesn't exists
isToUpgrade = True
End If
'Debug.Print(TempFileName)
' download the new file
'If isToUpgrade Then MyWebClient.DownloadFile(RemoteUri & Info(0), TempFileName)
'
If isToUpgrade Then
Dim fDownload As New frmDownload(RemoteUri & Info(0), TempFileName)
If fDownload.ShowDialog() = DialogResult.Abort Then
' rename the existent file to be deleted in the future
If isToDelete Then File.Move(FileName, TempFileName & ToDeleteExtension)
' rename the downloaded file to the real name
If isToUpgrade Then File.Move(TempFileName, FileName)
' try to delete the file
End If
End If
Next
' call the new version
System.Diagnostics.Process.Start(Application.ExecutablePath, Microsoft.VisualBasic.Command())
Ret = True
End If
Catch ex As Exception
Ret = True
MsgBox(m_ErrorMessage & vbCr & ex.Message & vbCr & "Assembly: " & AssemblyName, MsgBoxStyle.Critical, Application.ProductName)
End Try
Return Ret
End Function
Private Sub FileDownloadComplete()
End Sub
Public Property RemotePath() As String
Get
Return m_RemotePath
End Get
Set(ByVal value As String)
m_RemotePath = value
End Set
End Property
Public Property UpdateFileName() As String
Get
Return m_UpdateFileName
End Get
Set(ByVal value As String)
m_UpdateFileName = value
End Set
End Property
Public Property ErrorMessage() As String
Get
Return m_ErrorMessage
End Get
Set(ByVal value As String)
m_ErrorMessage = value
End Set
End Property
Private Function GetVersion(ByVal Version As String) As String
Dim x() As String = Split(Version, ".")
Return String.Format("{0:00000}{1:00000}{2:00000}{3:00000}", Int(x(0)), Int(x(1)), Int(x(2)), Int(x(3)))
End Function
Public Sub MakeFolderToUpload()
Try
Dim fn As String = My.Application.Info.DirectoryPath + "\" + My.Application.Info.AssemblyName + ".exe"
Dim fnNew As String = "C:\" + My.Application.Info.ProductName + "\" + My.Application.Info.AssemblyName + ".exe"
If IO.Directory.Exists("C:\" + My.Application.Info.ProductName) Then
Try
IO.Directory.Delete("C:\" + My.Application.Info.ProductName, True)
Catch ex As Exception
If IO.File.Exists(fnNew) Then IO.File.Delete(fnNew)
End Try
End If
Application.DoEvents()
IO.Directory.CreateDirectory("C:\" + My.Application.Info.ProductName)
IO.File.Copy(fn, fnNew, True)
Dim rtb As New RichTextBox
rtb.AppendText(My.Application.Info.AssemblyName + ".exe;" + My.Application.Info.Version.ToString)
rtb.SaveFile("C:\" + My.Application.Info.ProductName + "\update.txt", RichTextBoxStreamType.PlainText)
Catch ex As Exception
End Try
End Sub
End Module
Public Class frmDownload
Inherits System.Windows.Forms.Form
Private WithEvents tmrDownload As System.Windows.Forms.Timer
Private WithEvents tmrNext As System.Windows.Forms.Timer
#Region " Windows Form Designer generated code "
'Form overrides dispose to clean up the component list.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
'Required by the Windows Form Designer
Private components As System.ComponentModel.IContainer
'NOTE: The following procedure is required by the Windows Form Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
Friend WithEvents ProgressBar1 As System.Windows.Forms.ProgressBar
Friend WithEvents Label1 As System.Windows.Forms.Label
Friend WithEvents st2Speed As System.Windows.Forms.Label
Friend WithEvents st2Downloded As System.Windows.Forms.Label
Friend WithEvents st2DownloadURL As System.Windows.Forms.Label
Friend WithEvents st2LocalFile As System.Windows.Forms.Label
Friend WithEvents lblCent As System.Windows.Forms.Label
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Me.ProgressBar1 = New System.Windows.Forms.ProgressBar
Me.Label1 = New System.Windows.Forms.Label
Me.st2Speed = New System.Windows.Forms.Label
Me.st2Downloded = New System.Windows.Forms.Label
Me.st2DownloadURL = New System.Windows.Forms.Label
Me.st2LocalFile = New System.Windows.Forms.Label
Me.lblCent = New System.Windows.Forms.Label
Me.SuspendLayout()
'
'ProgressBar1
'
Me.ProgressBar1.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.ProgressBar1.Location = New System.Drawing.Point(117, 73)
Me.ProgressBar1.Name = "ProgressBar1"
Me.ProgressBar1.Size = New System.Drawing.Size(315, 24)
Me.ProgressBar1.TabIndex = 10
'
'Label1
'
Me.Label1.Location = New System.Drawing.Point(24, 73)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(53, 24)
Me.Label1.TabIndex = 8
Me.Label1.Text = "Progress:"
Me.Label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
'
'st2Speed
'
Me.st2Speed.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.st2Speed.Location = New System.Drawing.Point(280, 105)
Me.st2Speed.Name = "st2Speed"
Me.st2Speed.Size = New System.Drawing.Size(152, 16)
Me.st2Speed.TabIndex = 12
Me.st2Speed.Text = "Transfer Rate: KB/Sec"
Me.st2Speed.TextAlign = System.Drawing.ContentAlignment.MiddleRight
'
'st2Downloded
'
Me.st2Downloded.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.st2Downloded.Location = New System.Drawing.Point(24, 105)
Me.st2Downloded.Name = "st2Downloded"
Me.st2Downloded.Size = New System.Drawing.Size(240, 16)
Me.st2Downloded.TabIndex = 11
Me.st2Downloded.Text = "Downloaded"
Me.st2Downloded.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
'
'st2DownloadURL
'
Me.st2DownloadURL.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.st2DownloadURL.Location = New System.Drawing.Point(24, 9)
Me.st2DownloadURL.Name = "st2DownloadURL"
Me.st2DownloadURL.Size = New System.Drawing.Size(408, 32)
Me.st2DownloadURL.TabIndex = 6
Me.st2DownloadURL.Text = "Download URL"
'
'st2LocalFile
'
Me.st2LocalFile.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.st2LocalFile.Location = New System.Drawing.Point(24, 41)
Me.st2LocalFile.Name = "st2LocalFile"
Me.st2LocalFile.Size = New System.Drawing.Size(408, 32)
Me.st2LocalFile.TabIndex = 7
Me.st2LocalFile.Text = "Local File Name"
'
'lblCent
'
Me.lblCent.Font = New System.Drawing.Font("Microsoft Sans Serif", 10.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.lblCent.Location = New System.Drawing.Point(64, 73)
Me.lblCent.Name = "lblCent"
Me.lblCent.Size = New System.Drawing.Size(48, 24)
Me.lblCent.TabIndex = 9
Me.lblCent.Text = "%"
Me.lblCent.TextAlign = System.Drawing.ContentAlignment.MiddleRight
'
'frmDownload
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(456, 130)
Me.ControlBox = False
Me.Controls.Add(Me.Label1)
Me.Controls.Add(Me.ProgressBar1)
Me.Controls.Add(Me.st2Speed)
Me.Controls.Add(Me.st2Downloded)
Me.Controls.Add(Me.st2DownloadURL)
Me.Controls.Add(Me.st2LocalFile)
Me.Controls.Add(Me.lblCent)
Me.MaximizeBox = False
Me.Name = "frmDownload"
Me.ShowIcon = False
Me.ShowInTaskbar = False
Me.Text = "Download"
Me.ResumeLayout(False)
End Sub
#End Region
#Region " Declarations "
Dim UrlOfFile As String
Dim LocOfFile As String
Dim MainForm As Form
Dim bPaused As Boolean
Public Sub New(ByVal f As Form, ByVal sURL2Download As String, ByVal sLocalFilename As String)
MyBase.New()
'This call is required by the Windows Form Designer.
InitializeComponent()
Me.Text = Application.ProductName + " Update"
'Add any initialization after the InitializeComponent() call
Me.UrlOfFile = sURL2Download
Me.LocOfFile = sLocalFilename
'Me.SizeOfFile = FileSize
Me.MainForm = f
'Me.ProgressBar1
'Me._NumberOfDownload = NumberOfDownload.MoreDownload
End Sub
Public Sub New(ByVal sURL2Download As String, ByVal sLocalFilename As String)
MyBase.New()
'This call is required by the Windows Form Designer.
InitializeComponent()
Me.Text = Application.ProductName + " Update"
Me.UrlOfFile = sURL2Download
Me.LocOfFile = sLocalFilename
End Sub
Private Sub WaitMinimize()
Thread.Sleep(100)
'Me.ShowHide()
End Sub
#End Region
#Region " Menus "
Private Sub mnuShowHide_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
'Me.ShowHide()
End Sub
Private Sub mnuExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Me.Close()
End Sub
Private Sub NotifyIcon1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs)
'Me.ShowHide()
End Sub
Private Sub ShowHide1()
If Me.Visible = True Then
Me.WindowState = FormWindowState.Minimized
Me.Hide()
Else
Me.Show()
Me.Focus()
Me.WindowState = FormWindowState.Normal
End If
End Sub
Dim DownloadedTemp As Double
Dim Downloaded As Double
Private Sub tmrDownload_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrDownload.Tick
Application.DoEvents()
DownloadedTemp = Downloaded / 1000
Downloaded = 0
'bitsec.Text = Format(DownloadedTemp, "#,###,###,###0.00") & " KB/sec"
Me.st2Speed.Text = "Transfer Rate: " & Format(DownloadedTemp, "#,###,###,###0.00") & " KB/sec"
End Sub
#End Region
Dim iDownloadCount As Integer = 0
Private Sub frmDownload_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim t As New Threading.Thread(AddressOf Me.WaitMinimize)
t.Start()
If Me.UrlOfFile.Trim.Length < 7 Then
Me.Close()
End If
Me.tmrNext.Start()
End Sub
Private Sub tmrNext_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrNext.Tick
Try
If My.Computer.Network.IsAvailable Then
Me.tmrNext.Stop()
If Me.iDownloadCount >= 3 Then
Me.Close()
Exit Try
End If
Me.iDownloadCount += 1
Dim StartTime As DateTime = Now
Dim fn As String = Me.DownloadFile(Me.UrlOfFile, Me.LocOfFile)
If IO.File.Exists(fn) Then
Me.DialogResult = Windows.Forms.DialogResult.Abort
Me.Close()
Else
Me.Timer(10)
Me.tmrNext.Start()
End If
End If
Catch ex As Exception
Me.Timer(10)
Me.tmrNext.Start()
End Try
End Sub
Private Function Timer(ByVal i As Integer) As Integer
Return i * 1000
End Function
Private Function DownloadFile(ByVal sURL As String, ByVal sDownloadLocation As String) As String
If Not IO.Directory.Exists(My.Computer.FileSystem.SpecialDirectories.Temp) Then
IO.Directory.CreateDirectory(My.Computer.FileSystem.SpecialDirectories.Temp)
End If
Dim sLocalTempFile As String = Me.LocOfFile
Try
Me.st2DownloadURL.Text = "Downloading from: " & sURL
Me.st2LocalFile.Text = "Saving to: " & sLocalTempFile
Dim URLReq As Net.HttpWebRequest
Dim URLRes As Net.HttpWebResponse
Dim bBuffer(999) As Byte
Dim iBytesRead As Integer
Application.DoEvents()
URLReq = System.Net.WebRequest.Create(sURL)
URLRes = URLReq.GetResponse
Dim sChunks As IO.Stream = URLReq.GetResponse.GetResponseStream
Me.ProgressBar1.Value = 0
Me.ProgressBar1.Maximum = URLRes.ContentLength
Dim FileStreamer As New IO.FileStream(sLocalTempFile, IO.FileMode.Create)
tmrDownload.Start()
Do
If My.Computer.Network.IsAvailable Then
Try
If Me.bPaused = True Then
Do
Application.DoEvents()
If Me.bPaused = False Then
Exit Do
End If
Loop
End If
iBytesRead = sChunks.Read(bBuffer, 0, 1000)
Downloaded += iBytesRead
Me.st2Downloded.Text = "Downloaded " & Format(Me.ProgressBar1.Value / 1024, "#,###,###,###0.00") & " KB of " & Format(Me.ProgressBar1.Maximum / 1024, "#,###,###,###0.00") & " KB"
Application.DoEvents()
If Me.ProgressBar1.Value + iBytesRead <= Me.ProgressBar1.Maximum Then
Me.ProgressBar1.Value += iBytesRead
Else
Me.ProgressBar1.Value = Me.ProgressBar1.Maximum
End If
Try
Me.lblCent.Text = ((Me.ProgressBar1.Value / Me.ProgressBar1.Maximum) * 100).ToString("##") & "%"
Catch ex As Exception
End Try
FileStreamer.Write(bBuffer, 0, iBytesRead)
Catch ex As Exception
Exit Do
End Try
Else
Exit Do
End If
Loop Until iBytesRead = 0
Downloaded = 0
Me.tmrDownload.Stop()
sChunks.Close()
FileStreamer.Close()
Return sLocalTempFile
Catch ex1 As Net.WebException
Catch ex As Exception
End Try
Me.tmrDownload.Stop()
Return ""
End Function
End Class
|
|
|
|
|
Bug
This line:
My.Application.Info.DirectoryPath.ToLower + "\" + My.Application.Info.ProductName.ToLower + ".exe"
should be replaced with this:
My.Application.Info.DirectoryPath.ToLower + "\" + My.Application.Info.AssemblyName.ToLower + ".exe"
Also I had to comment out the declarations of tmrDownload and tmrNext and add them to the form designer to make them work. For some reason they just wouldn't fire till I did that.
modified on Monday, November 8, 2010 5:38 PM
|
|
|
|
|
hi sir,
what i should compile this code, dll or exe? and what i should placed frmdownload, at DLL project or my true project? because i try place frmdownload at myproject frmdownload cannot defined at updatefiles function DLL project.
|
|
|
|
|
The code in AutoUpdate is working up to the line
System.Diagnostics.Process.Start(Application.ExecutablePath, Microsoft.VisualBasic.Command())
then I'm getting this error message guys,
"The process cannot access the file because it is being used by another process"
How can i solve this, ideas ???
|
|
|
|
|
Got it, never mind
Maybe to help others who might face same prob
Now, The zip file with the source code, has 2 projects, one for the AutoUpdate dll project, and another for the AutoUpdateTest project.
Now the AutoUpdate dll is simply referenced in the AutoUpdateTest project which means in essence we have one project, which is the AutoUpdateTest project which is the one we are trying to update. Now if you run that project, you will get an error
“The process cannot access the file because it is being used by another process “
Whats happening here is we were trying to update the same process that is currently running, this obviously doesn’t make sense or is not possible coz windows locks a running process !!!!!, My solution was simple, since we can’t modify a running process why not let this process do the job of downloading a replacing another projects .exe file, i.e. just create a separate project which will be the one we want to update, create say a third project there called ProjectToAutoUpdate project, compile it and copy the ProjectToAutoUpdate.exe to AutoUpdateTest Bin folder, set AutoUpdateTest as Main project so it runs first and checks updates etc, then downloads updates then delete the actual .exe we want updated(ProjectToAutoUpdate.exe), and then start this new ProjectToAutoUpdate.exe from AutoUpdateTest .
Man !!!
Well corret me if i'm wrong somewhere, but my solution works
|
|
|
|
|
what version of windows are you using?
|
|
|
|
|
Hi all
How do i do this line in C# if I am using the DLL!
If AutoUpdate.UpdateFiles() Then Exit Sub
|
|
|
|
|
|
Hi is there a c# version available?
Qaisar
|
|
|
|
|
|
|
I'm receiving the following error when adding the autoupdate.dll file to my project:
"Could not load file or assembly 'AutoUpdate, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=null' or one of its dependencies.
Not sure what gives.
|
|
|
|
|
NOw when I add the code as a module for AutoUpdate.vb it gives me this error:
Starting a second message loop on a single thread is not a valid operation. Use Form.ShowDialog instead
Any ideas?
|
|
|
|
|
hi friends,
how can i save and retrieve word file into sql database using vb.net 2005.
thanx
Naresh Rajput
|
|
|
|
|
hi friends,
how can i save and retrieve word file into sql database.
thanx
Naresh Rajput
|
|
|
|
|
Hi there,
First of all, compliments for the usefull article. I was developing something similiar to this for a huge project long time before. The software I'm working on now is a software that contains a lot of logic builded inside class libraries (DLL files). Compiling the new version of the software will generate new references to the libraries by using keys on the .exe file side.
If the developer team distributes a new release of a single class library (dll file), we do not need to update the whole software package. We would like to update only the single class library file (dll file). By reading a central update file on a webserver we would like to download/update only the files needed to be updated and not the whole software package.
The problem I'm facing now are the references/codes compiled in the binary executable .exe file of the software. The new updated class library will not always be accepted, because the .exe file has in my opinion a reference key to each .dll file inculded in the project.
Is there a way to solve this problem? How can I update only the files that need to be updated (dll files) without having the issue with the reference keys. The class libraries should stay protected as they are. Am I missing something here? Any suggestions?
Regards,
Sead
|
|
|
|
|