controlLibrary my.application不起作用

时间:2009-12-18 09:25:21

标签: wpf vb.net

我已经构建了一个Wpf-ControLibrary-Project来放置一些控件。在一个Control中,我需要获得有关assambly,Version和目录路径的一些信息。

过去我做过这个:

Dim msg As String
msg = "AssemblyName: " & My.Application.Info.AssemblyName & Environment.NewLine
msg &= "Version: " & My.Application.Info.Version.ToString & Environment.NewLine
msg &= "DirectoryPath: " & My.Application.Info.DirectoryPath
MsgBox(msg)

但这不再起作用了。我收到一个错误,告诉我Application不是My Namespace的Party。那么,我如何得到这些信息?

2 个答案:

答案 0 :(得分:1)

您应该能够使用此代码获取所有信息(C#代码,但将其转换为VB很简单)

System.Reflection.Assembly executingAssembly = System.Reflection.Assembly.GetExecutingAssembly();
System.Reflection.AssemblyName assemblyName = executingAssembly.GetName();
string name = assemblyName.Name;
System.Version version = assemblyName.Version;
string path = executingAssembly.Location;

这将为您提供有关当前正在执行的程序集(您的控件库dll)的信息。如果您需要有关应用程序集的信息,可以使用:

System.Reflection.Assembly entryAssembly = System.Reflection.Assembly.GetEntryAssembly();

答案 1 :(得分:0)

您使用的项目模板缺少将My命名空间放在一起的代码生成器。如果你这样编码,你仍然可以使用它:

Dim myapp As New ApplicationServices.ApplicationBase
Dim name As String = myapp.Info.AssemblyName
' etc...