有一个git存储库,其中包含不同的项目和解决方案。我在.. \ Utils \ MyProject \文件夹中有一个项目
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net45</TargetFramework>
</PropertyGroup>
</Project>
,当我尝试在.. \ Utils \ OtherSolution \ OtherProject文件夹中添加对项目的引用(不是我创建的)时,出现以下情况:
Project `C:\Users\username\source\repos\gitRepo\Utils\OtherSolution\OtherProject\OtherProject.csproj` cannot be added due to incompatible targeted frameworks between the two projects. Review the project you are trying to add and verify that is compatible with the following targets:
- net45
该项目还针对4.5:
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{FDFA263A-9C0E-410D-A0D7-D1F230EA95BB}</ProjectGuid>
<OutputType>Exe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>OtherProject</RootNamespace>
<AssemblyName>OtherProject</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<TargetFrameworkProfile />
</PropertyGroup>
那是为什么,我该如何引用?
答案 0 :(得分:0)
从评论中可以明显看出您的设置是这样的:
A-> B
A引用B,其中A是.NET项目,而B是.NET标准项目。
意识到这一点: .NET是完整框架,而.NET标准只是完整框架的一个子集。这意味着在您的设置中,您尝试尝试从仅包含完整框架子集的项目中引用完整框架。这行不通。
另一种可能的解决方法是:
C-> D 其中C是.NET标准项目,D是.NET项目。
这意味着为了解决您的问题,您应该将要在..\Utils\OtherSolution\OtherProject
中共享的所有代码移到.NET标准类库项目中,并在..\Utils\MyProject\
项目中对其进行引用。您根本无法从.NET项目中引用.NET标准项目。
您提到..\Utils\OtherSolution\OtherProject
不是由您创建的,这意味着项目可能不受您的控制并且不可编辑。在这种情况下,变得困难。在这种情况下,引用该项目的唯一方法是使..\Utils\MyProject\
成为.NET项目而不是.NET标准:
..\Utils\OtherSolution\OtherProject
-> ..\Utils\MyProject\
这两个项目都是.NET
一些其他来源: