Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Framework 2.0 Добавлено: 25.11.06 11:57  

Автор вопроса:  Alexandr.R | Web-сайт: gvin.net
Привет всем!
Как программно узнать путь куда установлен Framework?

Ответить

  Ответы Всего ответов: 14  

Номер ответа: 1
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #1 Добавлено: 25.11.06 21:21
C:\WINDOWS\Microsoft.NET\Framework\<VERSION>

Ответить

Номер ответа: 2
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #2 Добавлено: 26.11.06 01:17
А если у меня системный диск D и папка называется "МАЯ ВИНДА"? Что тогда?

Так что твой способ никуда не годится.. для этих целей есть другая фишка...

Public Shared Function GetRuntimeDirectory() As String
     Member of: System.Runtime.InteropServices.RuntimeEnvironment
Summary:
Gets the directory where the common language runtime is installed.

Return Values:
A string containing the path to the directory where the common language runtime is installed.

Ответить

Номер ответа: 3
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #3 Добавлено: 26.11.06 16:33
А если у меня системный диск D и папка называется "МАЯ ВИНДА"? Что тогда?

тада так:
   Private Sub Form1_Load(ByVal eventSender As Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load
      Dim systemFolder As String = System.Environment.GetFolderPath(Environment.SpecialFolder.System)
      Dim windowsFolder As String = systemFolder.Substring(0, systemFolder.LastIndexOf("\"c))
      Dim frameworkFolder As String

      With New System.Text.StringBuilder
         .Append(windowsFolder)
         .Append("\Microsoft.NET\Framework\<VERSION>";)

         frameworkFolder = .ToString()
      End With

      Me.Text = frameworkFolder
   End Sub

;)

Ответить

Номер ответа: 4
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #4 Добавлено: 26.11.06 17:01
во блин гон...

StringBuilder здесь использовть нет смысла - поищи на blogs.gotdotnet.ru было сравнение скорости классов String и StringBuilder, если не ошибаюсь, то до 1000 конкатенаций StringBuilder не дает никакого преимущества.

По самому методу определения - не надо блин херней маяться.

Ответить

Номер ответа: 5
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #5 Добавлено: 26.11.06 18:41
:-))) мда уж.. со StringBuilder в данном случае явный перебор! В таком случае надо было хотя бы Path.Combine заюзать! )))
Но опять таки в твоем коде остается одно слабое место - <VERSION>.. Или ты полагаешь, что все его знают наизусть??

Ответить

Номер ответа: 6
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #6 Добавлено: 26.11.06 19:03
Можешь заюзать System.Environment.Version
:-))

Ответить

Номер ответа: 7
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #7 Добавлено: 26.11.06 19:31
Вот тебе в коллекцию самых абсурдных методов определения размещения Framework'а (жаль пальму первенства не поимеет):

        Dim Location As String = GetType(String).Assembly.Location
        Return Location.Substring(0, Location.LastIndexOf("\";) + 1)

Ответить

Номер ответа: 8
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #8 Добавлено: 26.11.06 19:36
жаль пальму первенства не поимеет


Это уж точно! :-) Способ Sacred Phoenix вне конкуренции! Пальма у него! :-))

Ответить

Номер ответа: 9
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #9 Добавлено: 26.11.06 21:15
2 Brand: смаил во 2-ом посте видишь? ;) Или ты думаешь, я действительно сурьезна? :)))

Пальма моя ;)))

Ответить

Номер ответа: 10
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #10 Добавлено: 26.11.06 21:16
тьфу, в 3-ем есессено

Ответить

Номер ответа: 11
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #11 Добавлено: 26.11.06 21:55
блин, 3-ий пост подряд... Последняя редакция супер-ф-ции!

Private Function GetFrameworkFolder(ByVal methodIndex As Byte) As String
   Select Case (methodIndex)
      Case 0 '// By EROS
         Return System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeDirectory()

      Case 1 '// By Brand
         Dim asmPath As String = GetType(String).Assembly.Location
         Return asmPath.Substring(0, asmPath.LastIndexOf("\";) + 1)

      Case 2 '// By Sacred Phoenix ;)
         Dim systemFolder As String = System.Environment.GetFolderPath(Environment.SpecialFolder.System)
         Return String.Format("{0}\Microsoft.NET\Framework\v{1}\", systemFolder.Substring(0, systemFolder.LastIndexOf("\"c)), System.Environment.Version.ToString(3))

      Case Else : Throw New System.NotSupportedException()
   End Select
End Function

;)

Ответить

Номер ответа: 12
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #12 Добавлено: 27.11.06 00:00
Sacred Phoenix
Старик, ты маньяк! :-))))

Ответить

Номер ответа: 13
Автор ответа:
 Alexandr.R



Вопросов: 9
Ответов: 115
 Web-сайт: gvin.net
 Профиль | | #13
Добавлено: 27.11.06 20:31
Спасибо всем за исчерпывающие ответы.

Ответить

Номер ответа: 14
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #14 Добавлено: 28.11.06 21:14
Старик, ты маньяк! :-))))
а то! ;))

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам