2010-01-25 28 views
5

Trong ứng dụng Silverlight 3.0 tôi muốn sử dụng AssemblyFileVersion để hiển thị thông tin phiên bản của ứng dụng. Đây không phải là giống như AssemblyVersion và thường được lấy ra trong một ứng dụng .NET sử dụng mã như:Silverlight 3 thay thế cho FileVersionInfo.GetVersionInfo

var executingAssembly = Assembly.GetExecutingAssembly(); 
var fileVersionInfo = FileVersionInfo.GetVersionInfo(executingAssembly.Location); 
var versionLabel = fileVersionInfo.FileVersion; 

Thật không may Silverlight 3.0 runtime không bao gồm các lớp FileVersionInfo. Có cách nào khác để truy cập thông tin này không?

Trả lời

3

Tôi tìm thấy một giải pháp cho điều này trong một bài twitter bởi Craig Young (biếu không của bộ nhớ đệm trang của Google) sử dụng Assembly.GetCustomAttributes như sau

var executingAssembly = Assembly.GetExecutingAssembly(); 
var customAttributes = executingAssembly.GetCustomAttributes(typeof(AssemblyFileVersionAttribute), false); 
if (customAttributes != null) 
{ 
    var assemblyFileVersionAttribute = customAttributes[0] as AssemblyFileVersionAttribute; 
    var fileVersionLabel = assemblyFileVersionAttribute.Version; 
} 

gửi bài giải pháp này để tham khảo trong tương lai.

5

Dưới đây là một cách để làm điều đó với các thuộc tính - Tôi không chắc chắn nếu nó sẽ làm việc trong Silverlight mặc dù vậy bạn sẽ phải cho tôi biết.

Assembly assembly = Assembly.GetExecutingAssembly(); 
object[] attributes = assembly.GetCustomAttributes(typeof(AssemblyFileVersionAttribute), false); 
if (attributes != null && attributes.Length > 0) 
{ 
    AssemblyFileVersionAttribute fileVersionAttribute = (AssemblyFileVersionAttribute)attributes[0]; 
    string version = fileVersionAttribute.Version; 
} 
+0

Nó hoạt động trong Silverlight 3. Tôi đã có câu trả lời và đã đăng bài nếu để tham khảo trong tương lai. Câu trả lời của tôi thuộc tính giải pháp cho nơi tôi tìm thấy thông tin đầu tiên. Dù sao cũng cảm ơn bạn. –

+2

@Martin, có lẽ bạn có thể đăng một thứ gì đó lên hiệu ứng đó trong câu hỏi để mọi người không lãng phí thời gian của họ cố gắng giúp đỡ. – overslacked

+0

@overslacked, tôi sẽ làm điều đó lần sau mặc dù rõ ràng tôi đã có câu trả lời xếp hàng và nó chỉ là một vài phút kể từ khi câu hỏi được đăng cho đến khi tôi đăng câu trả lời. Một số người chỉ là quá nhanh đối với tôi :-) –

Các vấn đề liên quan