2012-06-22 15 views
21

He descargado el código de muestra con C#. pero cuando corro me sale este mensaje de error:Un proyecto con un tipo de salida de Class Library no se puede iniciar directamente

Un proyecto con un tipo de salida de la biblioteca de clases no se puede iniciar directamente Con el fin de depurar este proyecto, agregar un proyecto ejecutable a esta solución que hace referencia al proyecto de biblioteca . Establezca el proyecto ejecutable como el proyecto de inicio.

Por favor dame una solución.

+8

¿Le dan una solución para qué? ¡Estás tratando de "ejecutar" algo que no fue diseñado para ejecutarse! Es una * biblioteca *, no un * programa *. – Jon

Respuesta

12

Si tiene un proyecto con un ejecutable, haga clic derecho y seleccione "Establecer como proyecto de inicio"; si no, tiene que escribir uno para depurar su código (o usar Pruebas unitarias).

+0

Descargué un Microsoft Live SDK y abrí uno de sus proyectos de muestra. Tuve que "Establecer como proyecto de inicio" antes de poder ejecutarlo. Esta respuesta ayudó. Gracias @ carsten-konig. – Dizzley

4

Debe comprobar que tiene la configuración del proyecto de inicio correctamente.

Si hay más de un proyecto en la solución, haga clic derecho sobre el que se debe ejecutar cuando se compila y seleccione Establecer como proyecto de inicio

55

El proyecto de inicio seleccionado actualmente es una biblioteca de clases.

Necesita un punto de entrada para su aplicación. ¿Su solución contiene múltiples proyectos?

¿Está seguro de que quiere 'ejecutar' la Biblioteca de clases?

enter image description here

Posiblemente usted ha transferido sólo una solución de biblioteca de clases. En ese caso, puede haber pruebas unitarias que puede "depurar" para pasar por el código.

actualización En respuesta a tu comentario, estos son posibilidades para ejecutar la biblioteca de clases:

  • Crear una aplicación de consola y hacen referencia a la biblioteca de clases. A continuación, 'uso' de sus contenidos
  • Depurar un proyecto de prueba de unidad
  • de inicio del proyecto cliente existente
+0

Sí, obtuve muchos proyectos en una solución. y quiero ejecutar la Biblioteca de clases. –

+1

@hinleaksmei No puede ejecutar una biblioteca de clases independiente. Se supone que su lógica es 'utilizada' por otro proyecto. Por lo tanto, necesita una lógica que 'use' las clases que se encuentran en su Biblioteca de clases. – Aphelion

9

La configuración de depuración de su entorno de desarrollo Visual Studio puede dejarse en blanco. Por favor, compruebe si los siguientes campos resaltados que faltan, si se han perdido luego llenarlo con su ejecutable específica

Debug Settings

Estos campos para que el VS iniciar el programa para la depuración. En la imagen de arriba, estoy desarrollando un paquete VS así que:

  1. El programa externo es devenv.exe línea
  2. Comando argumenet es/rootsuffix Exp (para el inicio de la instancia experimental)

Nota: Puedo asegurarle las respuestas mencionadas aquí no me ayudó a solucionar el problema porque mi proyecto ya fue establecido como un proyecto de inicio, ahora me encontré con un MSDN blog que me ayudó y condujo a esta respuesta.

+0

Y si no hay una sección Acción de inicio, puede deberse a que está utilizando una edición gratuita y Express de Visual Studio. En ese caso, busque un archivo .csproj.user y edítelo. Por ejemplo, estoy usando VS Express 2012 para construir un XLL con Excel-DNA. Aquí está mi archivo .cspros.user ... – osullivj

0
<?xml version="1.0" encoding="utf-8"?> 
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'"> 
    <StartAction>Program</StartAction> 
    <StartProgram>C:\Program Files (x86)\Microsoft Office\Office14\excel.exe</StartProgram> 
    <StartArguments></StartArguments> 
    <StartWorkingDirectory></StartWorkingDirectory> 
    <EnableUnmanagedDebugging>true</EnableUnmanagedDebugging> 
    </PropertyGroup> 
</Project> 
0

Estaba tratando de ejecutar una prueba de depuración con punto de interrupción en el archivo specFlow feature.cs en lugar del archivo Step.cs. Coloque el punto de interrupción en el archivo Step.cs y está funcionando como se esperaba. ¡Gracias!

Cuestiones relacionadas