Почему мое приложение MVC сообщает имя GetExecutingAssembly как App_web_xxxxx.dll? - PullRequest
1 голос
/ 05 июля 2010

Я обновляю нашу среду непрерывной интеграции CruiseControl.NET с использования старых проектов веб-развертывания Visual Studio 2008 до Visual Studio 2010.

Я не хочу использовать проекты веб-развертывания Beta 2010, поскольку думаю, что смогу использовать обновленную публикацию / упаковку в 2010 году.

В настоящее время мне удалось настроить скрипт CruiseControl так, чтобы он дважды вызывал MSBuild. Сначала необходимо построить решение в конфигурации выпуска, а затем упаковать проект MVC.

Затем я копирую правильные файлы из пакета из отвратительного пути к файлу (что заставляет меня подозревать, что я делаю это неправильно, хе-хе) и из Transformed web.configs на тестовый сервер.

Наконец-то это работает, но в отличие от того, когда я использовал проекты развертывания 2008 года, этот код возвращает ExecutingAssembly в виде App_web_xxxxx.dll, а не Company.Product.Web.dll, что мне и нужно.

Dim CurrentAssembly As Reflection.Assembly = System.Reflection.Assembly.GetExecutingAssembly
Dim version As String = CurrentAssembly.GetName.Version.ToString

Я знаю, что GetName возвращает более длинную строку, чем просто имя, но я отлаживаю ее, чтобы посмотреть, что она содержит. Я понимаю, что это скомпилированная / кэшированная DLL, но почему она не в MVC bin.

Приветствия

1 Ответ

2 голосов
/ 08 июля 2010

Я понял это - в основном, когда я вызывал Assembly.GetExecutingAssembly внутри footer.ascx.Это означало, что код находился в динамически скомпилированной dll для нижнего колонтитула.

То, что я хотел, - это DLL для веб-сайта MVC.Поэтому я использовал свойство extension на контроллере, который устанавливает ViewStates с информацией о Assembly.

В моем случае я захочу использовать этот код еще раз, чтобы свойство extension находилось в другом Assemmly, который я могу включить в различные MVCпроекты.Это означало, что мне пришлось изменить код для использования Assembly.GetCallingAssembly, но теперь он работает именно так, как я хотел.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...