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
Gary Chang - 19 May 2004 04:47 GMT
Hi Brock,
I have reviewed your message carefully and currently I am contacting the
dev team to consult this issue.
We will reply here with more information as soon as possible. If you have
any more concerns on it, please feel free to post here.
Thanks for your understanding!
Best regards,
Gary Chang
Microsoft Online Partner Support

Signature
Get Secure! - www.microsoft.com/security
This posting is provided "AS IS" with no warranties, and confers no rights.
--------------------
Felix Wu [MSFT] - 25 May 2004 07:00 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
[quoted text clipped - 9 lines]
>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
[quoted text clipped - 74 lines]
>
>Brock