2017-06-30 1 views
0

Ich habe ein ASP.NET Core-Projekt, das ordnungsgemäß mit VS erstellt, aber mit TeamCity fehlschlägt.ASP.NET Core (NET Framework) Teamcity-Build schlägt fehl, VS baut ordnungsgemäß

Es ist ein Projekt, das zu einer Bibliothek kompiliert, aber Teamcity versucht, es als eine ausführbare Datei zu bauen, und klagt über den Mangel an ‚Haupt‘:

CSC error CS5001: Program does not contain a static 'Main' method suitable for an entry point 

Der Inhalt der Datei CSPROJ sind als folgen:

<Project Sdk="Microsoft.NET.Sdk.Web"> 

    <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"> 
    <OutputType>Library</OutputType> 
    </PropertyGroup> 

    <PropertyGroup> 
    <TargetFramework>net462</TargetFramework> 
    <RuntimeIdentifier>win7-x86</RuntimeIdentifier> 
    <OutputTypeEx>library</OutputTypeEx> 
    <StartupObject /> 
    <AssemblyName>Test</AssemblyName> 
    <RootNamespace>Test</RootNamespace> 
    </PropertyGroup> 

    <ItemGroup> 
    <Folder Include="wwwroot\" /> 
    </ItemGroup> 
    <ItemGroup> 
    <PackageReference Include="Microsoft.AspNetCore" Version="1.1.2" /> 
    <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.3" /> 
    <PackageReference Include="Newtonsoft.Json" Version="10.0.3" /> 
    </ItemGroup> 
</Project> 

Visual Studio hat kein Problem beim Erstellen der DLL-Datei.

zu reproduzieren:

  • Erstellen einer ASP.NET-Core (.NET Framework) Projekt
  • Ändern Sie den Ausgabetyp Bibliothek
  • Entfernen Sie die Program.cs/startup.cs Dateien
  • Kompilieren Sie mit Visual Studio, um zu bestätigen, dass eine Bibliothek erstellt wird
  • Erstellen Sie mit Team City, und ein Fehler wird
angezeigt

Antwort

0

diesen Fehler zu vermeiden, schauen Sie bitte in diesem SO post oder this

Sie sollten die dotnet core plugin werden, oder Sie können leicht configure Dotnet bauen Befehl (wenn Dotnet in Ihrem Build Server vorhanden ist).

Oder Sie können die MusicStore build.cmd Datei als Referenz beziehen. Dies lädt und installiert im Grunde das dotnet und alle Abhängigkeiten und baut dann das Projekt auf.

Hoffe es hilft!

+0

In Bezug auf die beiden Beiträge haben wir keine project.json Datei; Dies ist eine klassische .csproj-Datei. Es ist asp.net Kern, aber mit regulären net Bibliotheken, es ist nicht der asp.net Kern mit den Core-Bibliotheken von der Kommandozeile – Thomas

+0

gebaut das Dotnet-Core-Plugin wird nicht helfen, weil es einen anderen Build-Pfad als die, die wir verwenden, darstellen bei der Entwicklung; Soweit es VS betrifft, ist dies eine regelmäßige csproj; Auf der TC - Seite habe ich die Ordner gereinigt, von Grund auf neu aufgebaut usw – Thomas

0

Ich habe einen Workaround gefunden; dies in der Projektdatei, setzt VS:

<OutputTypeEx>library</OutputTypeEx> 

Ich brauche eine Zeile hinzufügen:

<OutputType>Library</OutputType> 
<OutputTypeEx>library</OutputTypeEx> 

So sieht es aus wie der Build mit Teamcity ist nicht die OutputTypeEx propery Handhabung, aber es behandelt die Ausgabetyp eins.

Ich sehe das immer noch als einen Fehler, aber es gibt zumindest einen Workaround.

Verwandte Themen