tjo.. Jag har inte kunnat testa själv ännu, men är det inte så att du kan markera licens-filen som "deployable content" genom att välja egenskaper på filen och markera "Content"-egenskapen som true? men det är ju inte så licenser funkar i .net Jag tror att jag är med, ledsen, men jag hade inte kikat på licens-hanteringen tidigare, speciellt inte i C++ delen. Nu har jag fått stöd från vår support och svaret är tyvärr att det inte går att göra licens-filen automatiskt utan du får göra följande: hehe det var jag som klickat i fel ruta..managed c++ och licenser
om man lägger en licensierad kontroll på ett formulär i C# så skapar ju vs.net automagiskt en fil som heter "licenses.licx" som innehåller kontrollens public key blabla så att vs.net vet att en licens för den kontrollen ska kompileras in i hostappen.
men hur funkar det i managed c++ ??
måste man manuellt kompilera in den med lc.exe ?
eller går det automagiskt?
//Roger
[edit]
microsoft folket får gärna kliva in och svara här....
det är lite akut , vi har precis fått vår första kund som använder vc++ mot våra komponenter ,
och det funkar prima så länge man kör på den datorn där själva licensen ligger ...
men bevisligen så skiter vs.net att kompilera in licensen i hostappen som den gör i vb.net/c#.
det som är märkligt är att när man lägger kontrollen på ett managed vc++ formulär så addar vs.net automatiskt filen "licenses.licx" till projektet.
(och det ska den ju göra , så är det i c# och vb.net oxo)
men som sagt , licensen kompileras inte in i appen...
hur löser man detta?
[/edit]Sv: managed c++ och licenser
Har du provat, vad händer?
MvhSv: managed c++ och licenser
licenses.licx är ju bara en textfil som används av lc.exe för att beskriva för vilka kontroller som är licensierade.
lc.exe skapar då en myapp.exe.licenses fil (kompilerad licensfil)
denna ska sedan kompileras in i själva exefilen.
gör man detta manuellt i tex c# så gör man::
------------------
lc.exe /target:myapp.exe /complist:licenses.licx /i:mycomponent.dll
då genereras "myapp.exe.licenses" och den ska sedan kompileras in i själva exefilen
("myapp.exe" parametern är ju bara vad exen ska heta när den är kompilerad , så den filen behöver inte finnas)
sedan gör man
csc /res:myapp.exe.licenses /out:myapp.exe ...blabla....
då kompileras myapp.exe.licenses in som en managed resourse i exen.
sedan är allt frid och fröjd...
------------------
men hur gör man i managed c++???
har testat att adda "myapp.exe.licenses" till själva cpp projektet och satt typen till alla olika typer som finns i lista n allt från .res , .rc , resx osv osv , men likväl så funkar det inte.
och inte ska man väll behöva använda lc.exe och manuellt kompilera licenser när man använder vc++ ??
visst måste det väll gå att få vs.net att automatiskt kompilera in licenserna??
men om det nu inte går , hur får jag då in .licenses filen som en managed resource i själva exefilen????
ps.
det går inte att bara deplojja .licenses filen tillsammans med exefilen, den måste kompileras in i exen.
och att deploja en okompilerad licens till klientburkarna är ju inte ett alternativ , då kan vi ju lika gärna skippa licenserna helt , för då kan ju vem som vill bara sno licensen och lägga på sin egen burk och använda våra komponenter bäst de vill..
//RogerSv: managed c++ och licenser
Jag kollar internt...
Igen ledsen...Sv: managed c++ och licenser
1. Skapa Managed App i C++
2. Lägg till den licenserade komponenten!
3. Skapa en text-fil (t.ex. licens.txt) och den ska innehålla en rad per komponent enligt följande syntax:
<Namespace>.<Class>, <Assembly (utan filändelse)>
Alltså om du har den .dll som heter LicensedComponent.dll och i den en klass med namnrymden Licensed och klassnamnet Component så skulle filen se ut:
Licensed.Component, LicensedComponent
4. Använd lc.exe för att skapa licensfilen. T.ex.
lc /target:HostApplication.exe /complist:licens.txt /i:LicensedComponent.dll /v
Då genereras HostApplication.exe.licenses
5. I Managed C++ projektet öppnar du sedan egenskaper för projektet och under fliken Configuration Properties | Linker | Input finns ett fält som heter Embed Managed Resource File, där skriver du HostApplication.exe.licenses
6. Kompilera och kör!
Jag antar att om du redan lyckats skapa .licenses filen så är det bara steg 5 som du är intresserad av.
Jag är själv irriterad på att detta inte hanteras automatiskt, och jag har inget svar varför, väntar fortfarande på lite svar från Corp.
Hoppas att detta hjälper er nu!
MvhSv: managed c++ och licenser
jaja så kan det gå..
//Roger