visual studio run restaurar referencia que proyecto paquetes net los hace faltan este equipo encuentra dotnet cli msbuild .net-core visual-studio-2017 csproj

msbuild - studio - ¿Se pueden anidar archivos en VS2017 Solution Explorer para proyectos de.NET Core(no ASP.NET Core)?



install package no se encuentra el proyecto default (4)

En Visual Studio 2019, tengo un proyecto .NET Core 2.2 <Project Sdk="Microsoft.NET.Sdk"> en el que quería los archivos appsettings.json / appsettings.Development.json bien anidados, al igual que lo hacen automáticamente para <Project Sdk="Microsoft.NET.Sdk.Web"> proyectos.

Esto es lo que tuve que agregar al .CSPROJ:

<ItemGroup> <Content Include="appsettings.json"> <CopyToOutputDirectory>Always</CopyToOutputDirectory> </Content> <Content Include="appsettings.Development.json"> <DependentUpon>appsettings.json</DependentUpon> <CopyToOutputDirectory>Always</CopyToOutputDirectory> </Content> </ItemGroup>

Después de eso, tuve que descargar / volver a cargar el proyecto para que el cambio surta efecto en el Explorador de soluciones. Tenga en cuenta que también configuro estos archivos para que siempre se copien en el directorio de salida.

En los proyectos de MSBuild de la "vieja escuela", como los formularios Windows Forms todavía utilizan en VS2017, por ejemplo, los archivos podrían "anidarse" a través de un elemento DependentUpon en el archivo csproj.

Utilicé esto para agrupar pruebas unitarias en Noda Time, por ejemplo

<Compile Include="LocalDateTest.PeriodArithmetic.cs"> <DependentUpon>LocalDateTest.cs</DependentUpon> </Compile>

Eso condujo a pruebas fácilmente navegables:

A sabiendas "perdí" esta característica cuando me project.json a project.json para .NET Core, pero esperaba que volviera al convertir a MSBuild. Sin embargo, parece que los proyectos de MSBuild basados ​​en .NET Core SDK (elemento raíz <Project Sdk="Microsoft.NET.Sdk"> ) no reciben el mismo tratamiento en Visual Studio 2017, incluso si se agrega un ItemGroup manualmente con los mismos elementos que el proyecto de la "vieja escuela".

Los proyectos ASP.NET Core reciben anidamiento automático para CSS y Javascript minificados, pero no está claro cómo aplicar eso a C # en los proyectos de biblioteca .NET Core.


Lo tengo trabajando en uno de mis proyectos de estilo Microsoft.NET.Sdk usando algo similar a lo siguiente:

<ItemGroup> <Compile Update="LocalDateTest.*.cs"> <DependentUpon>LocalDateTest.cs</DependentUpon> </Compile> </ItemGroup>

El truco aquí es usar Update lugar de Include . Esto se debe a que los elementos implícitos provienen de un archivo de accesorios importado antes del proyecto principal. Una Include adicional no afectará a los archivos que ya están incluidos, pero se pueden modificar con la Update .


Si usa .netstandardx.x, no puede usar NestedIn . No funciona.

Puede hacerlo manualmente en su .csproj

<ItemGroup><Compile Include="BaseClass">ChildClass.cs</Compile></ItemGroup>


Si usa el mismo prefijo, anidará los archivos automáticamente.

Ejemplo:

AsemblyInfo.cs AsemblyInfo.local.cs