Мне нужно генерировать сборку во время выполнения, поэтому я генерирую файлы классов и компилирую их с помощью компилятора Roslyn. Выходной dll не имеет таких свойств, как заголовок, номер версии и т. Д. c. Я пытался включить AssemblyInfo.cs также во время компиляции, это не помогло.
Шаги, которые я выполнил - 1. Создал AssemblyInfo.cs с содержимым -
var fileContent =
"using System.Reflection;\n" +
"using System.Runtime.InteropServices;\n" +
"[assembly: AssemblyTitle(\"" + "Foo" + "\")]\n" +
"[assembly: AssemblyDescription(\"" + "\")]\n" +
"[assembly: AssemblyConfiguration(\"" + "\")]\n" +
"[assembly: AssemblyCompany(\"" + "\")]\n" +
"[assembly: AssemblyVersion(\"1.0.0.0\")]\n"+
"[assembly: AssemblyProduct(\"" + "Foo" + "\")]\n" +
"[assembly: AssemblyCopyright(\"" + "Copyright © 2010" + "\")]\n" +
"[assembly: AssemblyTrademark(\"" + "\")]\n" +
"[assembly: AssemblyCulture(\"" + "\")]\n" +
"[assembly: AssemblyFileVersion(\"1.0.0.0\")]\n" +
"[assembly: Guid(\"" + "Some GUID here"+"\")]\n";
Создано parsedSyntaxTree со всеми файлами .cs, включая AssemblyInfo.cs
var compilerParameters =
new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary)
.WithOptimizationLevel(OptimizationLevel.Release)
.WithWarningLevel(0);
var compiler = CSharpCompilation.Create(assemblyName,parsedSyntaxTree,
references, compilerParameters);
compiler.Emit(assemblyPath, assemblyPdbPath, manifestResources: resources);
Сгенерированный выходной dll не имеет информация свойства в нем.