Я создаю сборку во время выполнения с помощью CSScriptLibrary.Все работает нормально, но моя полученная сборка не имеет необходимой информации о сборке.
Если я включу атрибуты информации о сборке (найденные в AssemblyInfo.cs в каждом проекте C #) в строку кода, то компиляция завершится с «ошибкой дублированного атрибута».
Вот код, с помощью которого я создаю свою сборку:
try
{
compiledResultAssembly = CSScriptLibrary.CSScript.LoadCode(code, assemblyReferences.ToArray());
}
catch(Exception ex)
{ }
Как указать версию сборки, чтобы «compiledResultAssembly» не был в версии 0.0.0.0?
Версия CSScriptLibrary: 3.11.1.0.
Заранее спасибо
Редактировать 08.07.2019
Я нашел решение,CSScriptLibrary вставляет атрибут AssemblyDescription в некоторый момент, что вызывает ошибку «дубликата атрибута».
Чтобы указать информацию о версии сборки, просто используйте следующую настройку вашего сценария:
using System.Reflection;
using System.Runtime.InteropServices;
// all your usings
[assembly: AssemblyVersion("1.2.3.4")]
[assembly: AssemblyFileVersion("1.2.3.4")]
namespace YourNamespace
{
// your code here
}
Обратите внимание, что атрибуты сборки должны быть первыми в вашем коде и не могут быть размещены где-либо еще.