“Um projeto com um tipo de saída de biblioteca de classes não pode ser iniciado diretamente”

166

Fiz o download de um projeto em C # e desejo depurar o projeto para ver como funciona a implementação de um algoritmo.

O projeto chegou em uma pasta, dentro desta pasta existem -

  1. .slnarquivo e
  2. uma pasta que possui arquivos de origem e um .csprojarquivo .

Instalei o Visual Studio e abri o .slnarquivo presente na pasta principal. Criei o projeto com êxito, mas quando tento depurar o projeto, recebo esta mensagem:

Um projeto com um tipo de saída de biblioteca de classes não pode ser iniciado diretamente Para depurar esse projeto, adicione um projeto executável a esta solução que faça referência ao projeto da biblioteca. Defina o projeto executável como o projeto de inicialização.

O estranho é que não vejo uma função principal em lugar algum.

O que devo fazer para contornar esse soluço?

HaggarTheHorrible
fonte

Respostas:

173

O projeto que você baixou é compilado em um assembly dll e fornece um conjunto de classes com funcionalidade implementada.

Você deve adicionar à sua solução um novo projeto com o Tipo de saída do aplicativo de console ou do Windows (o assistente para adicionar projeto do VS oferecerá modelos diferentes de projetos).

No projeto recém-adicionado, você pode implementar a lógica para testar sua Biblioteca de Classes.

Tipo de saída do projeto que você pode encontrar e alterar seguindo as seguintes etapas:

  1. Clique com o botão direito do mouse no projeto em Solution Explorer -> Propriedades.

  2. Na guia aberta com propriedades, selecione Aplicativo e haverá ComboBox marcado com o rótulo Tipo de Saída.

Eugene Cheverda
fonte
7
E não se esqueça de definir o projeto recém-criado como projeto de inicialização (Botão direito do mouse sobre o novo project↦Set as StartUp Project)
bugybunny
@bugybunny você comentar é o que está faltando na resposta acima!
bata
111

Basta clicar com o botão direito do mouse na janela Project Solution. Expanda as propriedades comuns. Selecione Iniciar projeto

Lá, no lado direito, selecione o botão de opção com Projeto de Inicialização Única. Selecione seu Projeto e aplique-o.

É isso aí. Agora salve e construa seu projeto. Execute o projeto para ver a saída.

Suhail Pawane
fonte
60

Esta foi a solução que funcionou para mim, pois não consegui encontrar a opção 'Propriedades comuns'.

  1. Selecione seu projeto de nível superior no Solution Explorer .
  2. Vá para Projeto e, no menu contextual, defina como Projeto de inicialização .

    Definir como projeto de inicialização

Consulte também: Um projeto com um tipo de saída de biblioteca de classes não pode ser iniciado diretamente

Priyank Desai
fonte
Isso funcionou para mim também no VS 2015. Ele teve que criar um novo web.config e, em seguida, voltou a funcionar.
Eric D. Johnson
Também trabalhou para mim no Visual Studio 2019.
User0474975
Graças um milhão salvou horas de googling :)
Wolfazb
19

Só precisa ir:

Solution Explorer -> Vá para Properties ---> change (projeto de inicialização única) de.dll para .web

Em seguida, tente depurar.

Certamente o seu problema será resolvido.

Ashish Agrawal
fonte
12

O estranho é que não vejo uma função principal em lugar algum.

Esse é exatamente o seu problema. O projeto apenas cria uma DLL. Não tem executável para executar.

Você precisará adicionar um segundo projeto, que é um executável que faz referência ao outro projeto e chama algo nele.

James Curran
fonte
Ei James, Ok, eu adicionei um novo projeto na mesma solução. Um novo arquivo .cs é criado com uma função principal. Agora, a que devo me referir? Para o dll você quer dizer? Quando clico com o botão direito do mouse na guia referências, recebo uma janela Adicionar referência.
HaggarTheHorrible
Navegue para a guia Projetos. Haverá o conjunto de montagens definido em sua solução disponível para referência.
29810 Eugene Cheverda
1
Sim, exatamente. Não se esqueça de adicionar usos específicos para ter a capacidade de usar classes dessa 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
fonte
5

Você precisará de algum tipo de aplicativo (os aplicativos de console são os meus favoritos para depuração, mas o WinForm fará isso) que usa sua Biblioteca de classes. Basta adicionar um novo projeto (na mesma solução) de um Aplicativo de Console ou Aplicativo Windows Forms e adicionar uma referência ao seu projeto atual. Depois de fazer isso, faça as ligações necessárias, defina seus pontos de interrupção e vá para a cidade.

AllenG
fonte
4

Eu tive um problema semelhante ao tentar usar a Instância Experimental do Visual Studio 2013. Era para um projeto vsix (Criando Snippets).

A solução foi:

Clique com o botão direito do mouse em Projeto no Solution Explorer > Propriedades > Depurar

Configurando a Ação Inicial como "Start external program"e usando o seguinte caminho:

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

Esta opção foi configurada para "Start project"que não funcione para o tipo de saída do aplicativo Class Library, que causou o mesmo erro.

Nota: Os seus podem diferir dependendo de como você instalou o VS.

ShaneRoode
fonte
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.

Se ainda não funcionar após as etapas acima, tente isso.

    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"

Em seguida, salve (ctrl + S)

Tente depurar (F5)

kavinda
fonte
0

Suponha que você tenha vários projetos na solução. Selecione o projeto que deseja visualizar no navegador e selecione 'Definir como projeto de inicialização' . No seu projeto múltiplo, que era o principal, o visual studio não conseguiu identificar. esse foi o principal problema.

Fardim
fonte
0

Soluções de erro é que você já abriu seu projeto, mas por engano você selecionou outra biblioteca de classes .. é por isso que esse erro está aparecendo ... então o que você precisa fazer é selecionar o projeto e clicar com o botão direito do mouse em seu projeto

depois de clicar com o botão direito, você poderá ver a caixa de listagem e selecionar a opção " Definir como projeto inicial ".

Saikat Banik

Saikat Banik
fonte
0

Você pode clicar com o botão direito do mouse no projeto da Biblioteca de Classes e, no menu suspenso, escolher Inicializar C # interativo, que carregará o contexto do projeto e você poderá trabalhar na sessão interativa.

user2063329
fonte