2015-04-24 4 views
0

Я использую SharpDevelop, но после того, как я установил свое приложение, особенно для Enterprise Architect, мне нужно знать, где это местоположение, которое пользователь выбрал в процессе установки, потому что это важно для чтения некоторых данных моей надстройкой (MyApp), которые уже установлены в целевом пути, когда пользователь устанавливает мой инструмент.Найти путь установки в SharpDevelop

Я пытался добавить некоторые REGKEYS во время этапов установки, но я не мог держать путь, потому что в основном пользователь может изменить путь легко ..

  <Component Id="setuppath" Guid="FF2212C1-9374-5167-9E1F-3086284BED66" > 
       <RegistryKey Root="HKLM" Key="Software\Sparx Systems\DrawUML3D" Action="createAndRemoveOnUninstall"> 
        <RegistryValue Type="string" Value="1000" /> 
       </RegistryKey> 
      </Component> 

С уважением,

+0

Рядом с каждым ответом есть голой тикбокс, пометив ответы как правильные, вы получите 2 балла. Если ответ ниже не решает ваш вопрос, не помечен как правильный и больше исследований, чтобы найти другие методы, такие как этот: http://stackoverflow.com/questions/26613336/find-if-3rd-party-software- является установленной-на---и-в-Exes-имя пути установки –

ответ

2

Если надстройка работает в EA, то вы должны быть в состоянии получить правильный каталог, используя что-то вроде

System.IO.Path.GetDirectoryName( 
     System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase); 

или

System.IO.Path.GetDirectoryName(
     System.Reflection.Assembly.GetEntryAssembly().Location); 

или их вариации

Просто убедитесь, что вы как-то ухватить сборки интересующие Вас и получить его местоположение через Reflection.