Путь к .dll
файлам брал от сюда:
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\
List<string> DLL = new List<string>(); //тут уже лежит список путей к .dll
using (var provider = new CSharpCodeProvider())
{
// DLL.ToArray() добавляю ссылки
var Params = new CompilerParameters()
{
//parametrs build
};
provider.CompileAssemblyFromSource(Params, SourceCode) // compile
}
Но во время компиляции получаю ошибку:
error CS1703: Multiple assemblies with equivalent identity have been imported: 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\mscorlib.dll' and 'C:\Program Files (x86)\Reference\Assemblies\Microsoft\Framework.NETFramework\v3.5\Profile\Client\mscorlib.dll'.
Remove one of the duplicate references.
Как исправить?
[Дополнительная информация]
Сам проект скомпилирован под .Net4.5
(специально для Roslyn, под другие версии NetFramework его библиотеки он не ставит)
Если брать такой код:
List<string> DLL = new List<string>() // просто файлы
{
"mscorlib.dll", "System.Data.dll"
}
using (var provider = new CSharpCodeProvider())
{
var Params = new CompilerParameters(DLL.ToArray())
{
//parametrs build
};
provider.CompileAssemblyFromSource(Params, SourceCode) // compile
}
То всё работает, но ссылки из List<string>
он добавляет от как бы самого проекта ( под котором он скомпилирован ) P.S: Не из папок!
А мне нужно добавить из нужной мне папки, но если я этого делаю (см 1-ый пост )
то получаю ошибку о том что нельзя добавить библиотеки .dll
из разных папок.
Как мне получить нужные мне библиотеки и добавить их в сборку я не знаю как.
[Что предпринимал? ]
Попробовал удалить из того файла который компилируется ссылки (usings
).
Попробовал удалить файл packages.config
Но всё безрезультатно.
По умолчанию компилятор добавляет ссылки на системные сборки, прописанные в файле csc.rsp в его каталоге. Добавьте параметр компилятора nostdlib или noconfig, если вам это не нужно
На самом деле, это не работает. Поведение Roslyn отличается от традиционного С#-компилятора в том, что добавление опции /nostdlib
не имеет никакого эффекта, все равно будет добавлена ссылка на mscorlib 4.0. Единственный способ не добавлять ссылку на нее, это установить свойство CoreAssemblyFileName на путь к другой версии mscorlib и не добавлять ссылку ни одну сборку, зависимую от "ненужной" версии.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Есть переменные (объекты) которые могут храниться как в куче так и в стекеЕсть реализации методов у какого-то класса
если Wait() уберу, то возвратиться пустой результатА так никакой асинхронности
Есть ListView и кнопка для сравнения двух элементов, которая должна быть активна, когда выбраны два элементаЕсть такой код XAML:
Хочу сделать свою "non client area" в popup окнеКак и где мне можно работать с code-behind PopupWindowAction окна? Можно ли реагировать на события PopupWindowAction окна...