提问人:KawnG 提问时间:4/25/2018 最后编辑:KawnG 更新时间:4/26/2018 访问量:886
找不到元数据文件 .dll
Metadata file .dll could not be found
问:
我的项目找不到命名空间。有人知道问题出在哪里吗?
我已经尝试了很多方法来解决这个问题。但其中没有一个有效。
我试过:干净的解决方案,构建解决方案,重构和
右键单击解决方案,然后单击“属性”。
点击左侧的配置。
确保选中找不到项目的“生成”下的复选框。
如果已选中,请取消选中,点击应用并再次选中复选框。
这是我的代码截图。代码截图
<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>
这是您要求的代码。希望你能帮助我解决我的问题。
答:
0赞
Jarek Kożdoń
4/26/2018
#1
原因是类中的命名空间与命名空间中的产品类名称之间存在冲突。它与项目参考没有太大关系。在这种情况下,VS 优先于当前命名空间,而不是来自其他命名空间的类。
在这种情况下,您需要每次使用每个类,或者将您的命名空间更改为其他内容;例如ProductLogic
NTier.Domain
NTier.Domain.Product
Product
NTier.BLL.Product
NTier.BLL.ProductLogic
您“不能”使用命名空间似乎也不是真的(参考所附的屏幕截图和注释):它显示为灰色,因为它根本没有被使用(因为 VS 不会将代码中使用的任何 Product 字符串连接到您希望它执行的类,而是连接到当前命名空间,因此没有使用任何类,并且 VS 说您“您可以删除该引用, 它未使用“),以检查:
如果您将鼠标悬停在产品参考上,您应该会看到如下内容:Ntier.Domain
Ntier.Domain
它通知您 VS 没有看到那里的类,而是您当前的命名空间
评论