|
I wants to create a Msi to install software addin (dll). I created msi which copy the dll to the destination folder but how to register the dll using msi? now I have a batch file to do this and I am executing after installation (manually). Is there any good practice to register the dll while installation or to run the batch file during installation?
(vb2005)
Saseendran Kombath
|
|
|
|
|
Saseendran Kombath wrote: I created msi which copy the dll to the destination folder but how to register the dll using msi?
If you did this, there should be an option in the properties for that file, called Register, to register the .DLL. If it's a COM-based .DLL, you set this option to vsdraCOM . Done. No batch file required.
|
|
|
|
|
Below is the code I used in batch file to register the .DLL
c:\windows\microsoft.net\framework\v2.0.50727\RegAsm.exe /codebase "name.dll"
I tried using vsdraCOM but it doesn't worked for my application
Saseendran Kombath
|
|
|
|
|
Saseendran Kombath wrote: :\windows\microsoft.net\framework\v2.0.50727\RegAsm.exe /codebase "name.dll"
This is a .NET DLL, not COM-based.
Saseendran Kombath wrote: tried using vsdraCOM but it doesn't worked for my application
It didn't work because you told the MSI to register a COM-based DLL and that's not what you have. RegAsm registers a .NET assembly as a COM type, IF and only IF the assembly has been properly decorated and coded to support COM, AND is strong-named.
There is no option for a .NET DLL. You'll have to run the batch file from a custom action in the installer. For this, open Visual Studio and hit F1. Search for "custom actions" in the help for examples.
|
|
|
|
|
Thanks a lot for the clarification
Saseendran Kombath
|
|
|
|
|
Hi
I am trying to code in VB.Net 2003 i am a beginner, and i must retrieve a small amount of data from an oracle database. I have been searching online for the last 4-5weeks and cannot seem to get anywhere fast, the internet is just a mine field if you find some code that looks good it comes with errors and as it is new to me it is pretty difficult. I have designed the tables in oracle just need some code to return a small amount of data in VB.NET 2003.
Any help would be appreciated
Thank You beforehand
|
|
|
|
|
Instead of jumpng from article to article, snippet to snippet, you should take a snippet that you find online, read the article, check the error messages you get, and work out what it is that you're doing wrong. Copying and pasting code from the web that you don't take the time to understand is never going to work. Getting another snippet from this site won't make it better. You CAN use this site to ask questions about why the code you're using is not dogn what you want, however. That would make more sense.
Christian Graus - Microsoft MVP - C++
"I am working on a project that will convert a FORTRAN code to corresponding C++ code.I am not aware of FORTRAN syntax" ( spotted in the C++/CLI forum )
|
|
|
|
|
Thanks Christian you now it is correct to do that.
thank you
|
|
|
|
|
If I use the System.IO namespace to edit files where is the file default location. Will it be in the projects \bin directory?
|
|
|
|
|
Environment.CurrentDirectory or System.IO.Directory.GetCurrentDirectory() will provide you with the current working directory for your application.
Paul Marfleet
|
|
|
|
|
The default "current directory" is the folder you launched the .EXE from. BUT!! NEVER, and I mean NEVER, depend on the "current directory" to stay set to what you think it is. Your code should always build fully qualified path names to files.
|
|
|
|
|
i want vb6 code to enumerate installed devices
vimlesh
|
|
|
|
|
Noone is going to write it for you if that's what you're looking for.
Other than that, you'll have to ask a specific question about what you want. Somehow, I don't think you know anything about Windows Setup API functions.
|
|
|
|
|
I'm trying to do some Powerpoint automation from an ASP.NET page and generate/modify a slide. That piece of the code works fine but when it's all done running and even after I call the Quit() method on the powerpoint application object, POWERPOINT.EXE remains running and eventually this is causing problems. I've googled this extensively and nothing I've found has seemed to help. I really need this to work properly.
Here's my relevant code. I don't believe i'm using any Global references and I've even removed the COM reference from my website to use Late Binding instead in hopes that it would solve my problems as mentioned in this MSDN Article: http://support.microsoft.com/default.aspx?scid=kb;en-us;319832
Code:
Public Function GenerateDrillDown(ByVal strFileName As String) As Boolean
Dim App As Object = Nothing
Dim pres As Object = Nothing
Dim slide As Object = Nothing
Try
App = CreateObject("PowerPoint.Application")
App.Visible = -1 ' For debugging. Comment this out or set to 0 to keep the application from being visible.
pres = App.Presentations.Open("C:\DevProjects\Docs\DrillDown.ppt", 0, -1, -1)
slide = pres.Slides(1) ' There's only one slide in this ppt i'm using as the template.
slide.Shapes.Item("Text Box 8").TextFrame.TextRange.Text = DecisionTitle ' These are all string variables
slide.Shapes.Item("Text Box 13").TextFrame.TextRange.Text = Narrative
slide.Shapes.Item("Text Box 14").TextFrame.TextRange.Text = Issues
slide.Shapes.Item("Text Box 19").TextFrame.TextRange.Text = Scope
If TopicType = 1 Then
slide.Shapes.Item("Autoshape 9").TextFrame.TextRange.Text = IDNumber.ToString()
slide.Shapes.Item("Autoshape 9").Visible = -1
slide.Shapes.Item("Autoshape 56").Visible = 0
ElseIf TopicType = 2 Then
slide.Shapes.Item("Autoshape 56").TextFrame.TextRange.Text = "ST" & IDNumber.ToString()
slide.Shapes.Item("Autoshape 56").Visible = -1
slide.Shapes.Item("Autoshape 9").Visible = 0
End If
pres.SaveAs(strFilename, 1, 0)
Catch ex As Exception
Return False
Finally
' Most of this is coming from another article I found online to help combat the problem of open references with office automation.
GC.Collect()
GC.WaitForPendingFinalizers()
GC.Collect() ' Intentionally repeated
GC.WaitForPendingFinalizers()
If Not slide Is Nothing Then
Marshal.FinalReleaseComObject(slide)
slide = Nothing
End If
If Not pres Is Nothing Then
pres.Close()
Masrhal.FinalReleaseComObject(pres)
pres = Nothing
End If
If Not App Is Nothing Then
App.Quit() ' This doesn't do anything, no errors but ap stays open
Marshal.FInalReleaseComObject(App)
App = Nothing
End If
End Try
Return True
End Function
Please give me some guidance as this is an important piece of functionality required by my project. Thanks!
|
|
|
|
|
|
i have a windowform with employee image, Firstname and other data. I can save the image of the employee(when loaded into the image control) but when i dont load the picture in the image control it flags error
t.aransiola
|
|
|
|
|
And the error would be ...??? What about the code that's throwing it??
You only use a PictureBox to show an image, not to store it. And I'm not real thrilled with the idea of even using a PictureBox in most cases.
You do NOT do something like this:
PictureBox1.Image.Save...
|
|
|
|
|
instead of saving a blank picture box why not save a default image such as the company logo or such like. you can trap the error then load the default picture on this error.
|
|
|
|
|
Iwant the Image Field remain Null for those that doesnt have picture. saving a default image in the database will impact the db
thanks
t.aransiola
|
|
|
|
|
The picturebox should be there to show a picture, not to store one. If the database doesn't have a picture, you can either choose set the PictureBox's Image property to Nothing, or you can show a blank image or silohette image.
It appears you already have a picture in an Image object. After all, you have to set the PictureBox's image property to it so it shows up. So, you can save the image data to your database from the original image object, without using any of the properties of the PictureBox.
|
|
|
|
|
I have a MDI WIndow with treeview on the left,listview on the right with a splitter separating them
I want to open my other forms at a particular cordinate but its not working. i did something like this
dim myForm as New Invoice
myForm.left = listview.left
myForm.top=listview.top
myForm.show
the form wasnt positioned at where iwant it to be
pls help
t.aransiola
|
|
|
|
|
You used the coordinates of the listview, which are relative to it's parent container, not the screen.
So, the form being contained by nothing, used the coordinates relative to the desktop, not a window in your application.
|
|
|
|
|
pls assist with code snippet.
The listview is on Mdimain window. Now i want the other windows cordinattes to be using the listview cordinates
how do i get an object's reference cordinates in vb.net
t.aransiola
|
|
|
|
|
aransiola wrote: The listview is on Mdimain window. Now i want the other windows cordinattes to be using the listview cordinates
Since you haven't said anything about the parent container for this second form, I'm assuming you're not setting a parent window for the form. All you have to do is map the location of the ListView to Screen coordinates and use that result as the location for the new form.
Dim newLocation As Point = ListView1.PointToScreen(ListView1.Location)
Dim newForm As New Form2()
newForm.Location = newLocation
|
|
|
|
|
I ran into something simular last year and I think the problem was that you have to 'show' the form before setting the borders:
aransiola wrote: dim myForm as New Invoice
myForm.show
myForm.left = listview.left
myForm.top=listview.top
If my help was helpfull let me know, if not let me know why.
The only way we learn is by making mistakes.
|
|
|
|