Файл метаданных .dll не найден - PullRequest
0 голосов
/ 25 апреля 2018

Мой проект не может найти пространства имен. Кто-нибудь знает в чем проблема?

Я перепробовал множество вариантов, чтобы решить проблему. Но ни один из них не работает.

Я пробовал: чистый раствор, строительный раствор, рефакторинг и

Щелкните правой кнопкой мыши решение и выберите Свойства.

Нажмите Конфигурация слева.

Убедитесь, что установлен флажок в разделе «Сборка» для проекта, который он не может найти.

Если он уже отмечен, снимите флажок, нажмите «Применить» и снова установите флажки.

Вот скриншот моего кода. скриншот кода

    <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 Ответ

0 голосов
/ 25 апреля 2018

Причина - конфликт между вашим пространством имен в классе ProductLogic и именем класса продукта из пространства имен NTier.Domain. Это не имеет большого отношения к проекту. В этом случае VS имеет приоритет над текущим пространством имен, а не класс из другого пространства имен. Вам необходимо использовать NTier.Domain.Product каждый раз для каждого использования класса Product в этом случае или изменить ваше NTier.BLL.Product Пространство имен на что-то другое; например NTier.BLL.ProductLogic

Также не похоже, что вы «не можете» использовать пространство имен Ntier.Domain (ссылаясь на скриншот и комментарии там): оно серое, потому что оно вообще не используется (поскольку VS не подключается любые строки Product, используемые в коде для класса, который вы хотели бы сделать, но для текущего пространства имен, поэтому ни один из классов из Ntier.Domain не используется, и VS говорит, что вы "можете удалить эту ссылку, она не используется"), чтобы Проверь это: если вы наведите курсор мыши на ссылку Product, вы должны увидеть что-то вроде этого:

enter image description here

, который сообщает вам, что VS не видит там класс, но ваше текущее пространство имен

...