C# csproj中如何处理包参考的不同方法
到目前为止,我一直使用属性来控制C# csproj中如何处理包参考的不同方法,c#,.net-core,csproj,C#,.net Core,Csproj,到目前为止,我一直使用属性来控制PackageReference(第一个示例)的资产依赖性。最近,在使用NuGet package manager(在VS中)之后,我最终使用了完全不同的XML 两者都控制着同一件事,有谁能帮助我理解两者之间的区别,以及有两种方法来控制相似的事情的必要性吗 : ... ... ... 这些功能相当。除了一个例外,在元素上使用属性是使用相同名称的嵌套元素的快捷方式。例外情况是Include属性,它不能是嵌套元素 因此,Visual Studio、MSBuil
PackageReference
(第一个示例)的资产依赖性。最近,在使用NuGet package manager(在VS中)之后,我最终使用了完全不同的XML
两者都控制着同一件事,有谁能帮助我理解两者之间的区别,以及有两种方法来控制相似的事情的必要性吗
:
...
...
...
这些功能相当。除了一个例外,在
元素上使用属性是使用相同名称的嵌套元素的快捷方式。例外情况是Include
属性,它不能是嵌套元素
因此,Visual Studio、MSBuild、NuGet等将以相同的方式处理这些问题:
<PackageReference Include="Contoso.Utility.UsefulStuff" Version="3.6.0" />
<PackageReference Include="Contoso.Utility.UsefulStuff">
<Version>3.6.0</Version>
</PackageReference>
3.6.0
“ExcludeAsset”等其他属性也是如此
在使用NuGet package manager(在VS中)之后,我最终使用了完全不同的XML
VS中的NuGet软件包管理器在对
进行修改时,不尊重文档的原始格式。它可能是从.csproj文件中得到解释结果,而不是原始XML,因此它不知道您使用的是属性还是嵌套元素。它们在功能上是等效的。除了一个例外,在
元素上使用属性是使用相同名称的嵌套元素的快捷方式。例外情况是Include
属性,它不能是嵌套元素
因此,Visual Studio、MSBuild、NuGet等将以相同的方式处理这些问题:
<PackageReference Include="Contoso.Utility.UsefulStuff" Version="3.6.0" />
<PackageReference Include="Contoso.Utility.UsefulStuff">
<Version>3.6.0</Version>
</PackageReference>
3.6.0
“ExcludeAsset”等其他属性也是如此
在使用NuGet package manager(在VS中)之后,我最终使用了完全不同的XML
VS中的NuGet软件包管理器在对
进行修改时,不尊重文档的原始格式。它可能是获取.csproj文件的解释结果,而不是原始XML,因此它不知道您使用的是属性还是嵌套元素
<PackageReference Include="Contoso.Utility.UsefulStuff" Version="3.6.0" />
<PackageReference Include="Contoso.Utility.UsefulStuff">
<Version>3.6.0</Version>
</PackageReference>