问题描述
我正在一个项目上,此时出现错误。如果在名为ECommercial.Core的xunit测试项目中添加对其他项目的引用,则会出现入口错误。没有循环引用或其他内容。在其他问题上,人们会错误地拥有一种以上的主要方法,但对我而言,错误在于存在任何一种主要方法。而且,如果我从测试项目中删除引用,则有任何问题。测试方法为空,没有任何东西会在方法内部引起错误。这是错误消息。
错误消息
-----在类“ ECommercial.DataAccess.Tests.UnitTest1”中运行测试----- 对于.NET Microsoft(R)Build Engine版本16.7.0 + 7fb82e5b2
CSC:错误CS5001:程序不包含适用于入口点的静态“ Main”方法>> [c:\ Users \ nihaSWin \ Desktop \ ECommercial \ ECommercial.Core \ ECommercial.Core.csproj]
构建失败
CSC:错误CS5001:程序不包含适用于入口点的静态“ Main”方法 [c:\ Users \ nihaSWin \ Desktop \ ECommercial \ ECommercial.Core \ ECommercial.Core.csproj] 0警告 1个错误
运行时间00:00:00.68
我该如何解决? 我必须添加其他项目来对其进行测试。
我尝试过但没有奏效的东西
- 我试图添加与Core项目相同的依赖项
- 将SDK版本升级到4.5.2
- 将
false 属性添加到属性组 - 重新生成整个项目
test项目文件夹的名称为ECommercial.DataAccess.Tests,并且其中仅包含UnitTest1.cs项目。文件代码
using Xunit;
namespace ECommercial.DataAccess.Tests
{
public class UnitTest1
{
[Fact]
public void Get_Product_From_Table()
{
}
[Fact]
public void Get_Product_List_From_Table()
{
}
}
}
在引用的Ecommercial.Core文件夹中,只有IEntity空接口和NHibernate Entity Repository文件。这是文件代码。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using ECommercial.Core.DataAccess.NHibernate.Helpers;
using ECommercial.Core.Entities;
namespace ECommercial.Core.DataAccess.NHibernate
{
public class NHibernateIEntityRepository<TEntity>:IEntityRepository<TEntity>
where TEntity:class,IEntity,new()
{
private NHibernateHelper _nHibernateHelper;
public NHibernateIEntityRepository(NHibernateHelper nHibernateHelper)
{
_nHibernateHelper = nHibernateHelper;
}
public TEntity Add(TEntity entity)
{
using (var session=_nHibernateHelper.openSession()){
session.Save(entity);
return entity;
}
}
public void Delete(TEntity entity)
{
using (var session=_nHibernateHelper.openSession()){
session.Delete(entity);
}
}
public TEntity Get(Expression<Func<TEntity,bool>> filter)
{
using (var session=_nHibernateHelper.openSession()){
TEntity result = session.Query<TEntity>().SingleOrDefault(filter);
return result;
}
}
public List<TEntity> GetList(Expression<Func<TEntity,bool>> filter = null)
{
using (var session=_nHibernateHelper.openSession()){
if(filter==null)
return session.Query<TEntity>().ToList();
List<TEntity> result = session.Query<TEntity>().Where(filter).ToList();
return result;
}
}
public TEntity Update(TEntity entity)
{
using (var session=_nHibernateHelper.openSession()){
session.Update(entity);
return entity;
}
}
}
}
核心项目csproj文件
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="NHibernate" Version="5.3.3"/>
</ItemGroup>
</Project>
测试项目csproj文件
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.5.0" />
<PackageReference Include="xunit" Version="2.4.0" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.0" />
<PackageReference Include="coverlet.collector" Version="1.2.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="../ECommercial.Core/ECommercial.Core.csproj" />
</ItemGroup>
</Project>
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)