2014-04-03 5 views
1

Я пытаюсь разработать утилиту, которая позволит настраивать строки после развертывания нашего продукта. Спутниковые сборки, похоже, являются хорошим способом пойти сюда. У меня есть большой опыт использования Microsoft.VisualBasic.VBCodeProvider и Microsoft.CSharp.CSharpCodeProvider как часть процесса, где код может быть скомпилирован и загружен во время выполнения. Однако спутниковые сборки, похоже, не связаны с полным процессом компиляции. Когда я просматриваю веб-сайт для получения информации о создании спутниковых сборок, кажется, что вам нужно пропустить этап компиляции кода и просто использовать шаг ссылки (AL.exe), чтобы связать скомпилированный файл .resources в спутниковой DLL.Настройка ресурсов после развертывания

я получил, насколько генерации скомпилированных .resources файлов с помощью System.Resources.ResourceWriter, но сейчас я ищу элегантный способ для вызова функции в AL.exe, который будет создавать DLL из этого. Конечно, я мог бы просто вызвать System.Diagnostics.Process.Start на AL.EXE, но это выглядит не очень элегантно, поскольку как .NET Framework имеет встроенные классы для создания файлов .resources и для компиляции исходного кода VB.NET и C#.

По крайней мере, мне нужен хороший способ получить путь к соответствующему AL.EXE исполняемому файлу, но желательно, чтобы просто был .NET-класс, способный выполнить привязку.

ответ

1

Я бы порекомендовал вам просто оставить его как файл .resources, как описано в this article.

Dim resourceMgr = ResourceManager.CreateFileBasedResourceManager(resourceName, resourcePath, Nothing) 

С MSDN отмечает, что это блокирует файл, предотвращая обновляя сайт ASP.NET, вы можете также сделать копию каталога ресурсов перед созданием менеджера ресурсов. В зависимости от того, как и когда вы планируете их обновлять, вы также можете сохранить эти файлы ресурсов в папке App_Data.

+0

Hm. Вы решали мою проблему удобно, но не ответили на вопрос в названии. Должен ли я изменить название вопроса? – BlueMonkMN

+0

Возможно. Возможно, что-то вроде «Настроить файл' .resource' после развертывания »? –

+0

Я делаю это из веб-приложения, которое, по крайней мере, в среде отладки, создает некоторые интересные проблемы. Чтобы указать путь к файловому менеджеру ресурсов, я подумал: «Просто заберите каталог, где находится моя DLL, потому что я помещаю все это в одно и то же место», но, оказывается, мои двоичные файлы переходят в '% temp% \ Temporary ASP.NET Files' во время выполнения, но поскольку ресурсы уже не известны как зависимости DLL (так как тогда они были спутниковыми DLL), их не собирают. На данный момент я использую 'Server.MapPath (« bin »)' для поиска ресурсов, но приветствую предложения. – BlueMonkMN

Смежные вопросы