"Un proyecto con un tipo de salida de biblioteca de clases no se puede iniciar directamente"

166

Descargué un proyecto C # y deseo depurar el proyecto para ver cómo funciona la implementación de un algoritmo.

El proyecto ha venido en una carpeta, dentro de esta carpeta hay -

  1. .slnarchivo y
  2. una carpeta que tiene archivos de origen y un .csprojarchivo .

Instalé Visual Studio y abrí el .slnarchivo presente en la carpeta principal. Construí el proyecto con éxito, pero cuando trato de depurar el proyecto recibo este mensaje:

Un proyecto con un tipo de salida de biblioteca de clases no se puede iniciar directamente. Para depurar este proyecto, agregue un proyecto ejecutable a esta solución que haga referencia al proyecto de biblioteca. Establezca el proyecto ejecutable como el proyecto de inicio.

Lo extraño es que no veo una función principal en ningún lado.

¿Qué debo hacer para superar este hipo?

HaggarTheHorrible
fuente

Respuestas:

173

El proyecto que ha descargado se compila en un ensamblado dll y proporciona un conjunto de clases con funcionalidad implementada.

Debe agregar a su solución un nuevo proyecto con el Tipo de salida de la Aplicación de consola o la Aplicación de Windows (el asistente para agregar proyectos VS le ofrecerá diferentes plantillas de proyectos).

En el proyecto recién agregado, puede implementar la lógica para probar su Biblioteca de clases.

Tipo de salida del proyecto que puede encontrar y cambiar siguiendo los siguientes pasos:

  1. Haga clic derecho en el proyecto en el Explorador de soluciones -> Propiedades.

  2. En la pestaña abierta con propiedades seleccione Aplicación y habrá ComboBox marcado con la etiqueta Tipo de salida.

Eugene Cheverda
fuente
77
Y no olvide configurar el proyecto recién creado como proyecto de inicio (haga clic con el botón derecho en el nuevo proyecto ↦ Establecer como proyecto de
inicio
@bugybunny tu comentario es lo que falta en la respuesta anterior!
bate el
111

Simplemente haga clic con el botón derecho en la solución de proyecto. Aparece una ventana emergente. Expande las Propiedades comunes. Seleccione Start Up Project

Ahí, en el lado derecho, seleccione el botón de opción con Proyecto de inicio único. Seleccione su proyecto allí y solicite.

Eso es. Ahora guarda y construye tu proyecto. Ejecute el proyecto para ver el resultado.

Suhail Pawane
fuente
60

Esta fue la solución que funcionó para mí ya que no pude encontrar la opción 'Propiedades comunes'.

  1. Seleccione su proyecto de nivel superior en el Explorador de soluciones .
  2. Vaya a Proyecto y en el menú contextual Establecer como proyecto de inicio .

    Establecer como proyecto de inicio

Consulte también: Un proyecto con un tipo de salida de biblioteca de clases no se puede iniciar directamente

Priyank Desai
fuente
Esto funcionó para mí también en VS 2015. Tuvo que construirme un nuevo web.config, y luego estaba funcionando nuevamente.
Eric D. Johnson
También funcionó para mí en Visual Studio 2019.
user0474975
Un millón de gracias, ahorró horas de
búsqueda en
19

Solo necesita ir:

Explorador de soluciones -> Vaya a Propiedades ---> cambie (proyecto de inicio único) de.dll a .web

Luego intenta depurarlo.

Seguramente su problema será resuelto.

Ashish Agrawal
fuente
12

Lo extraño es que no veo una función principal en ningún lado.

Ese es exactamente tu problema. El proyecto simplemente crea una DLL. No tiene ejecutable para ejecutar.

Necesitará agregar un segundo proyecto, que es un ejecutable que hace referencia al otro proyecto y llama a algo en él.

James Curran
fuente
Hola James, está bien, he agregado un nuevo proyecto en la misma solución. Se crea un nuevo archivo .cs que tiene una función principal. Ahora a qué debo hacer referencia. ¿Al dll te refieres? Cuando hago clic derecho en la pestaña de referencias, aparece la ventana Agregar referencia.
HaggarTheHorrible
Navegue a la pestaña Proyectos. Habrá un conjunto de conjuntos definidos en su solución disponible para referencia.
Eugene Cheverda
1
Sí exactamente. No olvide agregar usos específicos para tener la capacidad de usar las clases de esa biblioteca.
Eugene Cheverda
7
1) Right Click on **Solution Explorer**
2) Go to the **Properties** 
3) Expand **Common Properties**
4) Select **Start Up Project**
5) click the radio button (**Single Start_up Project**)
6) select your Project name 
7) Then Debug Your project
Chamara
fuente
5

Necesitará algún tipo de aplicación (las aplicaciones de consola son mis favoritas para la depuración, pero un WinForm lo hará) que usa su biblioteca de clases. Simplemente agregue un nuevo proyecto (en la misma solución) de una Aplicación de consola o una Aplicación de formularios Windows Forms, y agregue una referencia a su proyecto actual. Una vez que hayas hecho eso, haz las llamadas que necesites, establece tus puntos de interrupción y ve a la ciudad.

AllenG
fuente
4

Tuve un problema similar al intentar usar la instancia experimental de Visual Studio 2013. Esto fue para un proyecto vsix (Creación de fragmentos).

La solución fue:

Haga clic con el botón derecho en Proyecto en el Explorador de soluciones > Propiedades > Depurar

Establecer la acción de inicio "Start external program"y usar la siguiente ruta:

C: \ Archivos de programa (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ devenv.exe

Esta opción se configuró para "Start project"que no funcione para el tipo de salida de la aplicación Biblioteca de clases, lo que causó el mismo error.

Nota: la suya puede diferir dependiendo de cómo instaló VS.

ShaneRoode
fuente
2
    Right Click on "Solution Explorer" -> "Properties"
    Expand "Common Properties"
    Select "Start Up Project"
    click the radio button "Single Start_up Project"
    select your Project name from the drop down list.

Si aún no funciona después de los pasos anteriores, intente esto.

    Expand solutions explorer.
    Right click on project name -> "Properties"
    Go to "Application" tab
    Select "Output type" 
 From the drop down list select the appropriate type according to your application.
    "Windows application" or
    "Console application"

Luego guardar (ctrl + S)

Intenta depurar (F5)

kavinda
fuente
0

Supongamos que tiene varios proyectos en la solución. Seleccione el proyecto que desea ver en el navegador y seleccione 'Establecer como proyecto de inicio' . En su proyecto múltiple, que era el principal, el estudio visual no pudo identificarlo. Este fue el principal problema.

Fardim
fuente
0

Las soluciones de error es que ya ha abierto su proyecto, pero por error ha seleccionado otra biblioteca de clases ... esa es la razón por la que se muestra este error ... así que lo que necesita hacer es seleccionar su proyecto y luego hacer clic derecho en su proyecto

después de hacer clic derecho, puede ver el cuadro de lista y seleccionar " Establecer como proyecto de inicio opción ".

Saikat Banik

Saikat Banik
fuente
0

Puede hacer clic con el botón derecho en el proyecto Biblioteca de clases y, en el menú desplegable, seleccione Inicializar C # interactivo, que cargará el contexto del proyecto y podrá trabajarlo en la sesión interactiva.

usuario2063329
fuente