Файл метаданных.dll не найден
Мой проект не может найти пространства имен. Кто-нибудь знает в чем проблема?
Я перепробовал много вариантов, чтобы решить проблему. Но ни один из них не работает.
Я пытался: чистое решение, построить решение, рефакторинг и
Щелкните правой кнопкой мыши на решении и выберите Свойства.
Нажмите Конфигурация слева.
Убедитесь, что флажок в разделе Build для проекта, который он не может найти, установлен.
Если он уже установлен, снимите флажок, нажмите "Применить" и снова установите флажки.
Вот скриншот моего кода. скриншот кода
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{DD7D144A-06C0-482A-9142-3CD989CCC7A4}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>NTier.BLL</RootNamespace>
<AssemblyName>NTier.BLL</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Admin\AdminLogic.cs" />
<Compile Include="Customer\CustomerLogic.cs" />
<Compile Include="Admin\IAdminLogic.cs" />
<Compile Include="Customer\ICustomerLogic.cs" />
<Compile Include="Customer\INotRegularCustomerLogic.cs" />
<Compile Include="Customer\IRegularCustomerLogic.cs" />
<Compile Include="Customer\NotRegularCustomerLogic.cs" />
<Compile Include="Customer\RegularCustomerLogic.cs" />
<Compile Include="Order\IOrderLogic.cs" />
<Compile Include="Order\OrderLogic.cs" />
<Compile Include="Product\IProductLogic.cs" />
<Compile Include="Review\IReviewLogic.cs" />
<Compile Include="Product\ProductLogic.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Review\ReviewLogic.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\NTier.DAL\NTier.DAL.csproj">
<Project>{a42bdcd5-0ec1-4d2a-b96a-92e39138e9cb}</Project>
<Name>NTier.DAL</Name>
</ProjectReference>
<ProjectReference Include="..\NTier.Domain\NTier.Domain.csproj">
<Project>{70a4d682-67bb-456b-a21d-f343b43fe1b6}</Project>
<Name>NTier.Domain</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<WCFMetadata Include="Connected Services\" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
Вот код, который вы просили. Надеюсь, вы можете помочь с моей проблемой.
1 ответ
Причиной является конфликт между вашим пространством имен в ProductLogic
класс и название класса продукта от NTier.Domain
Пространство имен. Это не имеет ничего общего со ссылкой на проект. В этом случае VS имеет приоритет над текущим пространством имен, а не класс из другого пространства имен. Вам нужно использовать NTier.Domain.Product
каждый раз для каждого Product
использование класса в этом случае или изменить ваш NTier.BLL.Product
Пространство имен для чего-то другого; например NTier.BLL.ProductLogic
Это также не похоже на правду, которую вы не можете использовать Ntier.Domain
Пространство имен (ссылаясь на прикрепленный скриншот и комментарии там): оно затенено, потому что оно вообще не используется (поскольку VS не связывает ни одну из строк Product, используемых в коде, с классом, который вы хотели бы сделать, но с текущим пространство имен, поэтому ни один из классов из Ntier.Domain
используется, и VS говорит, что вы "можете удалить эту ссылку, она не используется"), чтобы проверить, что: если вы наведете указатель мыши на ссылку Product, вы должны увидеть что-то вроде этого:
который сообщает вам, что VS не видит там класс, но ваше текущее пространство имен