RE: VS.NET 2003 doesn't honor the version of assemblies in .licx file

Tech-Archive recommends: Speed Up your PC by fixing your registry

From: Felix Wu [MSFT] (felixwu_at_online.microsoft.com)
Date: 05/25/04

  • Next message: Sherman: "RE: User Controls Disappeared from Windows Forms"
    Date: Tue, 25 May 2004 06:00:14 GMT
    
    

    Hi Brock,

    I was reviewing your question when I realized that it's already a week old.
    I apologize for not getting to you sooner. If you are still monitoring this
    issue, please post another note to let me know you are still there. Then I
    will investigate this for you.

    Thanks,

    Felix Wu
    =============
    This posting is provided "AS IS" with no warranties, and confers no rights.

    --------------------
    >From: "Brock Reeve" <breeve@newsgroups.nospam>
    >Subject: VS.NET 2003 doesn't honor the version of assemblies in .licx file
    >Date: Tue, 18 May 2004 13:58:19 -0500
    >Lines: 94
    >Organization: National Instruments
    >X-Priority: 3
    >X-MSMail-Priority: Normal
    >X-Newsreader: Microsoft Outlook Express 6.00.2800.1409
    >X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1409
    >Message-ID: <Oyqv#oQPEHA.3944@tk2msftngp13.phx.gbl>
    >Newsgroups: microsoft.public.vsnet.ide
    >NNTP-Posting-Host: client-72-213.natinst.com 130.164.72.213
    >Path:
    cpmsftngxa10.phx.gbl!TK2MSFTFEED01.phx.gbl!TK2MSFTNGP08.phx.gbl!tk2msftngp13
    phx.gbl
    >Xref: cpmsftngxa10.phx.gbl microsoft.public.vsnet.ide:12303
    >X-Tomcat-NG: microsoft.public.vsnet.ide
    >
    >VS.NET calls lc.exe at build time to extract the licenses from the types in
    >the .licx file, but it doesn't behave the same way as if you called lc.exe
    >from the command line stand alone. The two .licenses files generated are
    >different even though the .licx file is the same.
    >
    >
    >
    >For example, suppose my .licx file had these contents:
    >
    >
    >
    >NationalInstruments.Restricted.AnalysisLicenser,
    >NationalInstruments.Analysis.Enterprise, Version=7.0.0.341,
    Culture=neutral,
    >PublicKeyToken=4544464cdeaab541
    >
    >NationalInstruments.Net.DataSocket, NationalInstruments.Net,
    >Version=7.0.0.341, Culture=neutral, PublicKeyToken=4544464cdeaab541
    >
    >NationalInstruments.Net.DataSocketServer, NationalInstruments.Net,
    >Version=7.0.0.341, Culture=neutral, PublicKeyToken=4544464cdeaab541
    >
    >NationalInstruments.Net.DataSocketSource, NationalInstruments.Net,
    >Version=7.0.0.341, Culture=neutral, PublicKeyToken=4544464cdeaab541
    >
    >NationalInstruments.UI.WindowsForms.Led,
    >NationalInstruments.UI.WindowsForms, Version=7.0.0.341, Culture=neutral,
    >PublicKeyToken=4544464cdeaab541
    >
    >NationalInstruments.UI.WindowsForms.Legend,
    >NationalInstruments.UI.WindowsForms, Version=7.0.0.341, Culture=neutral,
    >PublicKeyToken=4544464cdeaab541
    >
    >NationalInstruments.UI.WindowsForms.ScatterGraph,
    >NationalInstruments.UI.WindowsForms, Version=7.0.0.341, Culture=neutral,
    >PublicKeyToken=4544464cdeaab541
    >
    >NationalInstruments.UI.WindowsForms.Switch,
    >NationalInstruments.UI.WindowsForms, Version=7.0.0.341, Culture=neutral,
    >PublicKeyToken=4544464cdeaab541
    >
    >NationalInstruments.UI.WindowsForms.WaveformGraph,
    >NationalInstruments.UI.WindowsForms, Version=7.0.0.341, Culture=neutral,
    >PublicKeyToken=4544464cdeaab541
    >
    >
    >
    >If I run "lc /target:test /complist:license.licx" the .licenses file
    >generated is correct.
    >
    >
    >
    >If I edit the Version part of each type above in the .licx file to be
    >"BadVersion" and run "lc /target:test /complist:license.licx" I get an
    error
    >LC0003 error saying "licenses.licx(3) : error LC0003 : Unabled to resolve
    >type 'NationalInstruments.Restricted.AnalysisLicenser,
    >NationalInstruments.Analysis.Enterprise, Version=BadVersion,
    >Culture=neutral, PublicKeyToken=4544464cdeaab541' for every type in the
    >.licx file. This makes sense. The version is bad.
    >
    >
    >
    >What doesn't make sense is if I open the same .licx file in a VS project
    and
    >make the same change by changing the Version part to "BadVersion" and
    build,
    >VS is fine with it. The generated .licenses file in the obj\Debug\ folder
    >contains the 7.0.0.341 version. This seems weird. I would expect consistent
    >behavior.
    >
    >
    >
    >This shows that VS is not reading the .licx file every time you
    >build/rebuild. It must be caching the types in the .licx file at certain
    >times. This seems buggy and is causing troubles. I want to be able to
    >change the versions in the .licx file and have VS honor it the next time a
    >build/rebuild occurs. For example, if I change the Version part of each
    type
    >to 7.1.0.213 in the .licx file I would expect the .licenses file to contain
    >7.1.0.213 version the next time a build/rebuild occurs in VS. This does
    not
    >happen even though the 7.1.0.213 assemblies are in the GAC. However,
    running
    >lc.exe on 7.1.0.213 .licx file contains the 7.1.0.213 versions in the
    >.licenses file.
    >
    >
    >
    >When is the .licx type caching done? How can I force the contents of the
    >type cache that VS is holding to be refreshed so my version change in the
    >.licx file is honored? This seems like a bug.
    >
    >
    >
    >
    >Thanks,
    >
    >Brock
    >
    >
    >


  • Next message: Sherman: "RE: User Controls Disappeared from Windows Forms"

    Relevant Pages