恕我直言。我正在尽可能多地提供信息。
我将一些类从.NETFramework库移到
新的.Net标准
以便从两者中引用它们
现有.Net Framework
项目和
新.Net内核
项目。将新的.net标准项目添加到包含其他.net Framework项目的解决方案后,现有生成定义(XAML)无法生成.net标准项目。如果我传递/t:restore,build as MSBuild参数,它就可以正常生成,但这会破坏解决方案中现有.net framework项目的生成。Visual Studio
能够很好地构建混合解决方案。我需要在这个混合解决方案中构建它,因为下游项目会打包并推送到我们的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):在涉及目标“\u FilterRestoreGraphProjectInputItems”的目标依赖关系图中存在循环依赖关系
我尝试过的其他事情:
<Project DefaultTargets="restore;build;publish" Sdk="Microsoft.NET.Sdk">
或者
<Project DefaultTargets="restore;publish" Sdk="Microsoft.NET.Sdk">
错误:
一堆错误说明了几乎所有的事情都是未定义的(vbc:类型“System.String”未定义。)注意:传递与msbuild目标相同的命令,如/t:restore、build、publish。
<Project Targets="restore,build,publish" Sdk="Microsoft.NET.Sdk">
<Project DefaultTargets="publish" Sdk="Microsoft.NET.Sdk">
或者
<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">
或者
<Project InitialTargets="restore" Targets="publish" Sdk="Microsoft.NET.Sdk">
错误:
谢谢你的阅读。我真的很感激任何解决这个问题的指导。