请原谅。我正在尝试提供尽可能多的信息。
我将某些类从.Net Framework库移到了新.Net Standard 库中,以便从现有.Net Framework 项目和 new中引用它们.Net Core 项目。将新的.net标准项目添加到包含其他.Net Framework项目的解决方案中之后,现有的构建定义(XAML)无法构建.net标准项目。如果我将/ t:restore,build作为MSBuild参数传递,它的构建会很好,但是这会破坏解决方案中现有.net框架项目的构建。视觉工作室 能够构建混合解决方案。我需要在此混合解决方案中构建它,因为下游项目将打包并将其推送到我们的nuget存储库(OctopusDeploy)。
为克服此问题,我尝试使用默认目标和初始目标,但无法通过它。
请参见下面的示例项目:
<Project InitialTargets="restore" DefaultTargets="publish" Sdk="Microsoft.NET.Sdk">
<PropertyGroup Label="Globals">
<SccProjectName>SAK</SccProjectName>
<SccProvider>SAK</SccProvider>
<SccAuxPath>SAK</SccAuxPath>
<SccLocalPath>SAK</SccLocalPath>
</PropertyGroup>
<PropertyGroup>
<RootNamespace>MyCompany.Common</RootNamespace>
<TargetFramework>netstandard2.0</TargetFramework>
<AssemblyName>MyCompany.CommonStandard</AssemblyName>
</PropertyGroup>
</Project>
使用上面的项目文件,出现此错误。 C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Professional \ Common7 \ IDE \ CommonExtensions \ Microsoft \ NuGet \ NuGet.targets(240):目标依赖图中涉及目标“ _FilterRestoreGraphProjectInputItems”的循环依赖/ p>
我尝试过的其他事情:
<Project DefaultTargets="restore;build;publish" Sdk="Microsoft.NET.Sdk">
OR
<Project DefaultTargets="restore;publish" Sdk="Microsoft.NET.Sdk">
错误:一堆错误,指出几乎所有内容都是未定义的。 (vbc:未定义类型'System.String'。)注意:传递与/ t:restore,build,publish作品等msbuild目标相同的内容。
<Project Targets="restore,build,publish" Sdk="Microsoft.NET.Sdk">
OR
<Project DefaultTargets="publish" Sdk="Microsoft.NET.Sdk">
OR
<Project DefaultTargets="publish" Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<BuildDependsOn>
Restore;
$(BuildDependsOn);
</BuildDependsOn>
</PropertyGroup>
错误:找不到\ obj \ project.assets.json'。运行NuGet软件包还原以生成此文件。
<Project InitialTargets="restore" Targets="build,publish" Sdk="Microsoft.NET.Sdk">
OR
<Project InitialTargets="restore" Targets="publish" Sdk="Microsoft.NET.Sdk">
错误:目标依赖关系图中涉及目标“ _FilterRestoreGraphProjectInputItems”的循环依赖。
感谢您的阅读。我非常感谢您提供解决此问题的指导。
答案 0 :(得分:0)
事实证明,我的构建定义指向的是无法识别sdk格式的MSBuild。将其更改为MSBuild15并使用restore,build目标后,我就能使它们工作。