Любопытно получить ссылку на mscorlib

#.net #silverlight #frameworks #mscorlib

#.net #silverlight #фреймворки #mscorlib

Вопрос:

Мне любопытно, что касается mscorlib ссылки в разных шаблонах проекта.

Когда я создаю проект WPF, я не могу найти mscorlib файл в папке reference. Я думаю, что на него ссылаются по умолчанию.

Когда я создаю проект Silverlight, я могу найти его в папке. Она ссылается на Silverlight framework. Затем я попытался удалить ее, и, конечно, она не может быть скомпилирована. Затем я попытался повторно добавить эту сборку в ссылку снова; она не может быть добавлена и больше не может быть скомпилирована. Это странно.

Когда я создаю проект MonoDroid, я все еще могу найти mscorlib ссылку. Но после того, как я удалил эту ссылку, проект все еще можно скомпилировать; но я не уверен, что он работает нормально.

Кто-нибудь знает, что вызывает такое поведение?

Спасибо, Говард

Ответ №1:

Просто чтобы кому-то не пришлось это гуглить. Мне не хватало mscorlib и я нашел точный способ, который CuiPengFei предложил сделать это в файле проекта, здесь:Отзыв Microsoft Connect об обходном пути, который был опубликован Джеймсом Уайтманом 9.12.2009 в 2: 52 ниже:

Как я сказал в отчете об ошибке, одним из обходных путей является ручное добавление ссылки обратно в проект вручную путем редактирования файла csproj с помощью (например) notepad:

Найдите этот раздел в файле csproj — очевидно, если у вас есть другие / дополнительные ссылки, это то, что вы ищете:

 <ItemGroup>
 <Reference Include="System.Windows" />
 <Reference Include="system" />
 <Reference Include="System.Net" />
 <Reference Include="System.Xml" />
 <Reference Include="System.Windows.Browser" />
</ItemGroup>
  

Добавьте строку для каждого из отсутствующих
ссылки — в данном случае, mscorlib
и система.Ядро — и ваш файл csproj
теперь должно выглядеть примерно так:

 <ItemGroup>
 <Reference Include="mscorlib" />
 <Reference Include="System.Core" />
 <Reference Include="System.Windows" />
 <Reference Include="system" />
 <Reference Include="System.Net" />
 <Reference Include="System.Xml" />
 <Reference Include="System.Windows.Browser" />
</ItemGroup>
  

Комментарии:

1. Это должно быть принятым ответом здесь. Я также хотел бы добавить, что после включения ссылки вам может потребоваться перезапустить Visual Studio, прежде чем она начнет работать

Ответ №2:

Это известная проблема, которую не удастся исправить для VS2010. Обходной путь заключается в редактировании файла проекта и повторном добавлении ссылки вручную.