Я пытаюсь изменить имя сборки моей dll во время сборки. Я создал еще один exe, который изменяет имя сборки в файле csproj, который я выполняю во время предварительной сборки. Но похоже, что мои изменения в файле csproj вступают в силу только после завершения сборки, что, конечно же, не то, что я хочу.Уникальное имя сборки для каждой сборки
Имя сборки должно быть уникальным при каждом его создании, поэтому я создаю его, добавив GUID.
var xmlDoc = XDocument.Load(projectFile);
XNamespace ns = "http://schemas.microsoft.com/developer/msbuild/2003";
string newAssemblyName = originalAssemblyName + "_" + Guid.NewGuid().ToString("N");
xmlDoc.Element(ns + "Project").Element(ns + "PropertyGroup").Element(ns + "AssemblyName").Value = newAssemblyName;
xmlDoc.Save(projectFile);
мне было интересно, если есть, возможно, путь к «силе» перезагрузить csproj во время предварительной сборки или, если есть другой способ, которым я мог бы получить уникальное имя сборки каждый раз я строй моего решения.
Копирования после сборки может быть дешевым и грязным решением ... Кроме того, что вы делаете чувствуете странно и, возможно, есть лучшее решение для вашей исходной проблемы, с которой вы пытаетесь работать (например, выгрузить плагин-домен). –
Я не говорю, что вы делаете что-то не так, но я также * чрезвычайно * интересуюсь тем, почему вам нужно уникальное имя сборки каждый раз. –
Я действительно загружаю dll в другое приложение. Моя первоначальная проблема заключалась в том, что другое приложение блокирует DLL, поэтому мне нужно закрыть его, построить мою dll, загрузить приложение снова. Поэтому я попытался автоматизировать мое ручное обходное решение. Я попытался переименовать старую dll, а затем создать новую dll, но я думаю, что как-то приложение, в которое я его загружаю, было кэшировано или что-то в этом роде, потому что единственный способ получить его для загрузки моей новой DLL - это изменить имя сборки. Но я тоже открыт для лучших решений! – VincentC