Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

234
Visualizações
faltan los controles y formularios y la opción de diseñador de vista en vs2019 ejecutando el proyecto SDK con el marco 4.7.2

Respuesta resumida hasta el momento: los formularios y los controles solo se abren en el diseñador si existe el archivo csproj.user.

La historia del problema:

Tengo 2 controles que heredan de un control base. Sin embargo, a uno le falta el ícono de control en el explorador de soluciones. icono perdido

La buena fuente de control comienza con

 public partial class UniTabMaterialsControl : UnitabBaseControl { public UniTabMaterialsControl() { InitializeComponent(); }

La mala fuente de control comienza con

 public partial class UniTabMaterialsControl : UnitabBaseControl { public UniTabMaterialsControl() { InitializeComponent(); }

La clase de control base es

 public class UnitabBaseControl : UserControl { }

He intentado cerrar y volver a abrir Visual Studio

[Actualizar]

Agregué un nuevo control de usuario y lo configuré para heredar también de UnitabBaseControl, extrañamente se corrigió el comportamiento.

Luego pude eliminar el nuevo control y mantener el comportamiento correcto.

Git muestra que ha habido un cambio en UnitabBaseControl.cs pero no veo qué cambió aparte del color del texto de UserControl

el color de la clase base cambió

Luego hice un clon nuevo de toda la solución. Esta vez el comportamiento incorrecto se mostró en todos los controles heredados de UnitabBaseControl.

[Actualizar]

Ahora sufro el mismo problema con los formularios.

el formulario no muestra el icono correcto

 using System.Windows.Forms; namespace SBD.VivSnap.UI { public partial class Form1 : Form { public Form1() { InitializeComponent(); } } }

y

 using System.Windows.Forms; namespace SBD.VivSnap.UI { public partial class Form2 : Form { public Form2() { InitializeComponent(); } } }

[Actualizar]

Olvidé mencionar que mi proyecto era un proyecto de biblioteca al que se hace referencia en el proyecto de puesta en marcha.

Eliminé y luego volví a agregar la referencia del proyecto de la biblioteca en el proyecto de inicio. Entonces todos los formularios y controles aparecieron correctamente.

No pude encontrar ningún cambio en Git para indicar por qué la solución ahora funcionó.

Desde entonces he notado el problema en mi proyecto principal.

problema en el proyecto principal

[Actualizar]

Resulta que mi proyecto está en formato .sdk a pesar de que es framework 4.7.2. Estoy pensando que esto puede tener algo que ver con eso.

Estoy usando Framework 4.7.2 con un proyecto SDK

Proyecto Sdk="Microsoft.NET.Sdk.WindowsDesktop"

Revisé el código en una computadora diferente que ejecuta VS2019 16.1.4 y funciona bien.

estoy usando 16.11.4

[Actualización] Ahora actualicé a 16.11.5 y volví a clonar, pero aún tengo el problema.

[Actualización] El archivo del proyecto es

 <Project Sdk="Microsoft.NET.Sdk.WindowsDesktop"> <PropertyGroup> <TargetFramework>net472</TargetFramework> <OutputType>WinExe</OutputType> <AssemblyName>Main</AssemblyName> <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir> <RestorePackages>true</RestorePackages> <GenerateAssemblyInfo>false</GenerateAssemblyInfo> <UseWindowsForms>true</UseWindowsForms> </PropertyGroup> <PropertyGroup> <StartupObject>SBD.VivSnap.Main.Program</StartupObject> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.CSharp" Version="4.7.0" /> <PackageReference Include="Microsoft.Data.SqlClient"> <Version>2.0.1</Version> </PackageReference> <PackageReference Include="Microsoft.EntityFrameworkCore"> <Version>3.1.12</Version> </PackageReference> <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer"> <Version>3.1.12</Version> </PackageReference> <PackageReference Include="NuGet.Build.Tasks.Pack" Version="5.7.0"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> </PackageReference> <PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" /> <PackageReference Include="System.Data.DataSetExtensions" Version="4.5.0" /> </ItemGroup> <ItemGroup> <ProjectReference Include="..\SnapInUI\SBD.VivSnap.UI.csproj" /> </ItemGroup> <ItemGroup> <Compile Update="Properties\Settings.Designer.cs"> <DesignTimeSharedInput>True</DesignTimeSharedInput> <AutoGen>True</AutoGen> <DependentUpon>Settings.settings</DependentUpon> </Compile> </ItemGroup> <ItemGroup> <None Update="Properties\Settings.settings"> <Generator>SettingsSingleFileGenerator</Generator> <LastGenOutput>Settings.Designer.cs</LastGenOutput> </None> </ItemGroup> </Project>

El archivo csproj.user está en mi respuesta.

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Resulta que los archivos csproj.user no estaban en el control de código fuente. Cuando copié myproject.csproj.user en la carpeta del proyecto y lo abrí en VS, los formularios aparecieron correctamente.

El contenido del archivo es

 <Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup /> <ItemGroup> <Compile Update="Form1.cs"> <SubType>Form</SubType> </Compile> <Compile Update="Form2.cs"> <SubType>Form</SubType> </Compile> </ItemGroup> </Project>

Esto me deja con el dilema de verificar o no csproj.user en el control de código fuente. Había pensado que esto no era necesario antes, pero parece que lo es. Además, el nombre "usuario" implicaría que es específico del usuario.

over 4 years ago · Santiago Trujillo Relatório

0

El tipo de compilación del formulario probablemente no esté configurado correctamente como "formulario" en el archivo .csproj. Abra el archivo .csproj y asegúrese de tener esta línea de código dondequiera que se mencione "form1.cs":

 <Compile Include="form1.cs"> <SubType>Form</SubType> </Compile>
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda