Мне нужно сослаться на различные сборки в CSharpCodeProvider
через вызов ReferencedAssemblies.Add
.
Для некоторых сборок достаточно просто передать имя сборки, например ReferencedAssemblies.Add("System.dll")
.
Однако PresentationCore.dll
является одним из тех, где требуется полный путь к сборке, который я могу не знать на целевой машине.
Вопрос:
Как я могу найти окончательный путь к (последней?) соответствующей сборке, скажем, в GAC?
В идеале решение должно работать не только для
PresentationCore.dll
, но и для других сборок, таких какPresentationFramework.dll
,System.Xaml.dll
илиSystem.Windows.Forms
.
Источники, которые не дали ожидаемых результатов:
- Это решение предполагает жесткое кодирование определенного пути, но решение должно быть динамическим
- Реализация этого Windows API может работать; но я не знаю как - и поможет ли это вообще решить вышеуказанное
- Этот вопрос C++ относится к тому, где находится GAC, но не как получить фактический путь к файлу
typeof([TypeKnownToBeInTheDesiredAssembly]).Assembly.CodeBase
обработать результат, используя: stackoverflow.com/a/283917/4035472. - person thehennyy   schedule 15.09.2018