Итак, что я делал в последнее время, так это добавление дополнительного проекта к своим программным решениям и выполнение программ пост-сборки в нем. Этот проект создается последним, а затем запускается сам.
классная вещь, которую я могу сделать, это запустить класс автоматизации ILMerge, который я создал, чтобы автоматически выполнять слияния, если я просто предоставлю ему папку проекта, увеличу номера версий в моей информации о сборке, скопирую файлы куда угодно, и т. Д. И т. Д. И т. Д. И т. Д. Мне кажется, что возможности здесь безграничны.
пример того, с которым я сейчас работаю - у меня довольно большая библиотека фреймворков, которую я собираюсь развернуть с одним из наших приложений, но мы не хотим включать все библиотеки отдельно ( Есть как 20). Также мне не нужны все классы в библиотеке для этого приложения, поэтому имеет смысл урезать его. В проекте пост-сборки библиотеки я делаю это ...
outputDirectory = new DirectoryInfo(@"...postbuildmerges\output");
solutionDirectory = new DirectoryInfo(@"...mainSolutionDirectory");
#region Web Lib
List<string> webLibraryNames = new List<string>
{
"Lib.Configuration",
"Lib.Web",
"Lib.Data",
"Lib.Utilities",
"Lib.Threading"
};
List<string> AllNeededAssemblies = new List<string>();
webLibraryNames.ForEach((libname) =>
{
foreach (string assembly in GetLibraryAssemblies(libname))
if (AllNeededAssemblies.Exists((assemblyName) => Path.GetFileName(assemblyName) == Path.GetFileName(assembly)) == false)
AllNeededAssemblies.Add(assembly);
});
SharpMergeAutomator.Merge(
@"...path to primary assembly...",
AllNeededAssemblies.ToArray(),
"...desired output file...",
//merges xml documentation
true);
#endregion
Так этот проект пост-сборки - хороший подход? это излишне сложно? Есть ли способ лучше? люди обычно делают такие вещи?