locked
Redistribution RRS feed

  • Question

  • How does one redistribute PrintForm? Are we limited to the provided installers?

    Regards,

    - Mike

    Thursday, October 5, 2006 8:50 PM

Answers

  • After further investigation I found out that this wasn't exactly true - you have to explicitly include the PrintForm dll. To include PrintForm:

    1) In Solution Explorer, click the Show All Files icon.

    2) Expand the References node and select Microsoft.VisualBasic.PowerPacks.Printing.PrintForm.

    3) In the Properties window, set the Copy Local property to True.

    Now you can deploy using either ClickOnce or Windows Installer, and the .dll will be installed along with the app. If you are deploying via Windows Installer, it is recommended that you install th dll to the Global Assembly Cache in order to share it between apps, however this isn't necessary.

    Hope this helps,

    Steve Hoag

    Tuesday, October 10, 2006 6:14 PM
    Moderator

All replies

  • Hi Mike,

    If you are referencing the PrintForm component in your application it should be automatically picked up and built into the .exe file using either ClickOnce deployment or Setup projects. Third-party setup tools should do the same thing; you would need to check with the pubvlisher to make sure.

    Hop this helps,

    Steve Hoag

    Monday, October 9, 2006 9:13 PM
    Moderator
  • After further investigation I found out that this wasn't exactly true - you have to explicitly include the PrintForm dll. To include PrintForm:

    1) In Solution Explorer, click the Show All Files icon.

    2) Expand the References node and select Microsoft.VisualBasic.PowerPacks.Printing.PrintForm.

    3) In the Properties window, set the Copy Local property to True.

    Now you can deploy using either ClickOnce or Windows Installer, and the .dll will be installed along with the app. If you are deploying via Windows Installer, it is recommended that you install th dll to the Global Assembly Cache in order to share it between apps, however this isn't necessary.

    Hope this helps,

    Steve Hoag

    Tuesday, October 10, 2006 6:14 PM
    Moderator
  • Ok, this makes sense now. I noticed that PrintForm.dll was in the GAC which made me wonder if we could redeploy it. Sounds like we are allowed to do so. Thanks...
    Tuesday, October 10, 2006 6:23 PM
  • Yes, legally you can redistribute this freely.  You can verify this in the EULA.

    Technically, you can either deploy a copy of the DLL with your app per above (side-by-side), or you can deploy a copy to the GAC (shared machine-wide).  VS Setup projects have a built-in way to deploy DLLs into the GAC.  The advantage of installing to the GAC, is it's a bit easier to update machines in the event of the DLL needing a patch.  Let us know if you need more help with this. 

    We're exploring the posibility of creating a formal redist for these DLLs so you can simply include the redist as a prereq. for the install.

    best,

    Paul Yuknewicz, Microsoft Visual Basic

     

     

     

    Saturday, October 21, 2006 1:48 AM
    Moderator
  • On my project I've got a setup project. I'm using now the PrintForm instruction and I did nothing on my setup project and no new files have been added automatically. But on a target machine where I installed my new version of software which use the PrintForm instruction I checked that the:

    Microsoft.VisualBasic.PowerPacks.Printing.PrintForm.dll

    was correctly installed.

    Monday, October 30, 2006 11:44 AM
  • Paul

    I've been developing Windows projects for 10 years in a corporate environment, but now I'm trying to create apps to sell to the public.  Where can I find out more about the EULA?  You used the word "freely".  That's not a word I see Microsoft use a lot, but I like it!  I've posted another question today on another thread about an error I'm getting in a setup package I created in Visual Studio.  A user installed my program on their XP machine, but when they tried to run it they got the error:

    Run-time error '339':
    Component 'MSMAPI32.OCX' not correctly registered: file is missing or invalid.

    My program uses MAPI to send out email messages.  I thought all Windows systems would have MAPI installed on them.  Should I add the MAPI OCX file to my installation program and do I have the legal right to do so?  Does Microsoft authorize developers to distribute that component with their applications?  Do I need to distribute some other Microsoft components that my program uses, like ADO and Excel?  How do I know which components I legally can and should include in my installation program?

    Any help is appreciated.

    Monday, October 30, 2006 2:21 PM
  • Paul

    I think I found the Microsoft EULA:

    http://download.microsoft.com/download/d/1/4/d14a40a7-a443-4172-a761-985bd6424538/MSDE_redist_EULA.doc

    Now I'll probably need to hire a lawyer to understand it.  I saw that it refers to a list of Redistributable Code (REDIST.TXT).  I found this link, but I'm not sure if its the list they are referring to.  It looks very short and doesn't include most of the components I'm using like ADO:

    http://download.microsoft.com/download/d/1/4/d14a40a7-a443-4172-a761-985bd6424538/MSDE_redist.txt

    Is there another list of Redistributable Code?

    Steve

     

    Monday, October 30, 2006 3:01 PM
  • I have researched this further and I find Redist.txt in the Visual Studio folder on my machine.  I think this is the Redist.txt file they are talking about.  It has an extensive list of redistributable components and includes the MSMAPI32.OCX which my application uses.  This answers most of my question, but not all.  The file Redist.txt lists 4 kinds of redistributables: Limited use, Extended use, Standard, and Samples.  I searched for the words extended and standard in Microsoft's EULA and they are not there. 

    Where are Limited use, Extended use, and Standard use defined?  I'll probably find the answer again, but if you know please post it.

    Steve

     

    Monday, October 30, 2006 5:28 PM
  • I searched another copy of the EULA and I found the definitions of Limited use, Extended use, and Standard use.  They are in sections 2 and 3 of the EULA and are far too complicated for a normal human to understand.  They seem to say that you can redistribute the components if you add significant and primary functionality to them and if it does not otherwise violate some obscure clause in the agreement that neither you nor a Harvard-educated lawyer will ever comprehend.  I'm still not sure what the phrase "Identified Software" is referring to.

    My work is done here.  I believe that I know what I can and can't redistribute now.

    Steve

     

    Monday, October 30, 2006 5:58 PM
  • Hi -

    Sorry I didn't realize this thread took a new direction on the EULA for print form.

    You can find the EULA in the install directory for the component, e.g.

    C:\Program Files\Microsoft Visual Basic 2005 Power Packs\PrintForm 1.0\Setup\EULA.rtf

    The other EULA you are pointing to above is for something else.  We're still talking about license for PrintForm, right?

    If yes, I think this is well written enough to understand the bottom line.  Here is the first paragraph (I encourage you to still read it all):

    "

    Microsoft license to User for Use of the Toolkit

    This license governs use of the Toolkit and associated documentation and other content.

    Subject to the restrictions below and any guidelines in the accompanying documentation, User may use the Toolkit, in whole or in part, with its own products and services for any commercial or noncommercial purpose, including making copies, distributing modifications, and combining it with its products and services.

    "

    Per above you can redistribute PrintForm in your commericial or non-commericial products and services.  Let me know if you have specific questions.

    Thanks,

    Paul

     

     

     

     

    Monday, November 20, 2006 6:30 PM
    Moderator
  • Hi - I'm not sure what your question or issue is.  Could you please start a new post and add some details about what you expect your setup to do vs. what is actually happening?

    thanks,

    Paul

    Monday, November 20, 2006 6:32 PM
    Moderator