C# 将csproj加载到属性";“不包括资产”;在元素中<;PackageReference>;未被承认
使用Microsoft.Build组件加载csproj,方法为ProjectCollection.GlobalProjectCollection.LoadProject。文件 在其中一个引用中加载具有PackageReference和ExcludeAsset属性的csproj,例如:C# 将csproj加载到属性";“不包括资产”;在元素中<;PackageReference>;未被承认,c#,msbuild,csproj,packagereference,C#,Msbuild,Csproj,Packagereference,使用Microsoft.Build组件加载csproj,方法为ProjectCollection.GlobalProjectCollection.LoadProject。文件 在其中一个引用中加载具有PackageReference和ExcludeAsset属性的csproj,例如: <PackageReference Include="SomePackage" ExcludeAssets="Compile"> <Versi
<PackageReference Include="SomePackage" ExcludeAssets="Compile">
<Version>1.0.0</Version>
</PackageReference>
1.0.0
将引发以下异常:
元素中的属性“ExcludeAssets”无法识别。
已经尝试过不同的工具版本(2.0 | 4.0 | 12.0),并且这两个项目都是在.net472中编译的
我怎样才能解决这个问题
谢谢我找到了一个与@AluanHaddad响应相关的解决方案。调用ProjectCollection.GlobalProjectCollection.LoadProject的项目。如果它使用新的SDK样式,则能够加载具有packagereferences和ExcludeAssets属性的旧csproj。我认为只有dotnet core支持这一点:csproj有效且编译正确。(带有PackageReferences的旧csproj格式)因此,根据我的理解,使用ProjectCollection.GlobalProjectCollection.LoadProject加载它不应该引发任何类型的异常