Hur får man fram AssemblyVersion från en annan exe-fil? Sä här: Jag försökte göra om det till VB.NET-kod men det gick inte riktigt. <ironi>Fantastiskt! Samma namn på helt olika saker...</ironi> Det fungerar fortfarande inte. På Attributes(0) på sista raden så får jag Index out of range. och assemblyn du testar med *har* naturligvis ett AssemblyVersionAttribute satt? (Kolla med Reflector om du är osäker) Ja, det är en annan exe-fil som är skapad i VS2005. Det var inte så krångligt ändå:AssemblyVersion från annan exe-fil
ThomasSv: AssemblyVersion från annan exe-fil
Assembly foo = Assembly.Load("foo.exe"); // eller hur du nu laddar den
object[] attributes = foo.GetCustomAttributes(typeof(AssemblyVersionAttribute));
AssemblyVersionAttribute version = attributes[0] as AssemblyVersionAttribute;
// ...
Sv:AssemblyVersion från annan exe-fil
<code>
Dim Exe As System.Reflection.Assembly = System.Reflection.Assembly.LoadFile("sökväg")
Dim Attributes() As Object = Exe.GetCustomAttributes(TypeOf(System.Reflection.AssemblyVersionAttribute)) '<--- Här blir det fel
Dim Version As System.Reflection.AssemblyVersionAttribute = Attributes(0)System.Reflection.AssemblyVersionAttribute
</code>
Felet är: <code>'Is' expected</code>
ThomasSv: AssemblyVersion från annan exe-fil
typeof(...) är alltså en "compiletime" .GetType(), och detta verkar vara motsvarande i vb.net:
GetType(System.Reflection.AssemblyVersionAttribute);
Sv:AssemblyVersion från annan exe-fil
GetType ville förresten ha en Boolean också, inherit as boolean. Vad ska den vara? Jag har testat med både True och False men det gjorde ingen skillnad.
ThomasSv: AssemblyVersion från annan exe-fil
I det där fallet så har det ingen större skillnad vad inherit har för värde..Sv:AssemblyVersion från annan exe-fil
En sak jag glömde säga är att jag var tvungen att använda DirectCast():
<code>Dim Version As System.Reflection.AssemblyVersionAttribute = DirectCast(Attributes(0), System.Reflection.AssemblyVersionAttribute)</code>
Men det påverkar väl inget?
Sen en annan sak, vad är det egentligen för skillnad på FileVersion och AssemblyVersion?
Edit:
Jag har kollat igenom vad som finns och AssemblyVersion fanns inte. Men det har jag givetvis angett i Assembly Information för aktuellt exe-fil och det står även med om man väljer egenskaper på filen.
ThomasSv: AssemblyVersion från annan exe-fil
<code>
Dim Exe As System.Reflection.Assembly = System.Reflection.Assembly.LoadFile("sökväg")
Messagebox.Show(Exe.GetName().Version.ToString)
</code>
Thomas