Я только что установил новую версию Community Edition для Visual Studio 2015 (RTM), и я пытаюсь получить мой проект с открытым исходным кодом, работающий под VS2015 и С# 6.0.
Некоторые из моих .cs разделяются между проектами. Таким образом, я могу создать как версию PCL (с ограниченной функциональностью), так и полную версию основной библиотеки.
По какой-то причине, однако, некоторые файлы кода строятся правильно в полном проекте, но сбой при построении в проекте PCL (где все компилируется под С# 5 и Visual Studio 2013). Компилятор, похоже, не может разрешить cref
в комментарии XML при создании версии PCL. Ниже приведен упрощенный пример кода, который не работает на моей машине:
/// <summary></summary>
public class A
{
// Compile error on next line:
/// <summary><see cref="Y(Type)"/>.</summary>
public void X() { }
/// <summary></summary>
/// <param name="x"></param>
public void Y(Type x) { }
/// <summary></summary>
/// <param name="i"></param>
public void Y(int i) { }
}
Ошибка компиляции, которую я получаю:
CS1580 Недопустимый тип для параметра Тип в атрибуте cref XML comment: 'Y (Тип)' SimpleInjector.PCL
Странно, однако, что поддержка IntelliSense в комментариях XML (Wow! у нас есть IntelliSense в комментариях XML сейчас!) действительно работает, а метод Y(Type)
можно выбрать в раскрывающемся списке. Но после его выбора генерируется ошибка компиляции (только в PCL).
Мой вопрос, конечно, как это исправить? Это общая проблема? Могла ли конфигурация проекта иметь какое-либо отношение к этому? Это известная ошибка?