Как создать внешний псевдоним для System.Core?

Мне абсолютно необходим внешний псевдоним для System.Core в моем проекте. К сожалению, в проекте .Net 4.0 нельзя даже добавить ссылку на System.Core, потому что, видимо, система сборки включает его по умолчанию. Кто-нибудь знает, как заставить систему разрешить мне указать внешний псевдоним для этой библиотеки? Спасибо!


person Dmitri Nesteruk    schedule 15.04.2010    source источник
comment
Включает ли он его также при нацеливании на более старую версию фреймворка?   -  person Fede    schedule 28.04.2010


Ответы (1)


Этот вопрос старый, но я столкнулся с той же проблемой. Насколько я понял, это связано с тем, что Visual Studio неявно добавляет ссылку на System.Core.

Вы можете переопределить это, отредактировав файл csproj msbuild и добавив:

<PropertyGroup>
   <AdditionalExplicitAssemblyReferences/>
</PropertyGroup>

в конце.

Это отключает любые AdditionalExplicitAssemblyReferences, которые, как я предполагаю, Visual Studio передала в MSBuild с помощью переключателя /p[property]. Конечно, теперь нам все еще нужно добавить ссылку на System.Core, так как на нее больше нет ссылок. Сделайте это, добавив

<Reference Include="System.Core">
   <RequiredTargetFramework>3.5</RequiredTargetFramework>
   <Aliases>global,ActualSystemCore</Aliases>
</Reference>

к ItemGroup, который содержит ссылки (или новый).

Теперь вы можете ссылаться на тип System.Core, используя

ActualSystemCore::System....
person Marcus    schedule 18.06.2011
comment
Если нет конфликта с другими идентификаторами, также разрешено использовать обычную точку, как в ActualSystemCore.System. .... - person Jeppe Stig Nielsen; 23.02.2016