2017-06-30 142 views
0

我有一個ASP.NET核心項目,與VS正確構建,但與TeamCity失敗。ASP.NET核心(NET框架)TeamCity構建失敗,VS構建正確

這是編譯爲一個庫,但TeamCity的嘗試構建它作爲一個可執行文件,並抱怨缺乏「主」的一個項目:

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

的.csproj的文件的內容是爲請按照下列步驟操作:

<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在構建dll文件時沒有問題。

重現:

  • 創建ASP.NET核心(.NET Framework)的項目
  • 更改輸出類型庫
  • 取出的Program.cs/startup.cs文件
  • 使用Visual Studio編譯以確認庫正在構建中
  • 使用Team City構建並出現錯誤

回答

0

爲了避免這種錯誤,請看看這個SO postthis

你應該使用dotnet core plugin,或者你可以很容易地 配置DOTNET建立命令(如果DOTNET出現在您的構建 服務器)。

或者您可以參考MusicStore build.cmd文件以供參考。這基本上下載並安裝了dotnet和所有的依賴項,然後構建項目。

希望它有幫助!

+0

關於這兩篇文章,我們沒有project.json文件;這是一個經典的.csproj文件;它是asp.net核心,但具有常規的網絡庫,它不是具有從命令行構建的核心庫的asp.net核心 – Thomas

+0

dotnet核心插件將無法提供幫助,因爲它表示與我們使用的路徑不同的構建路徑開發時;就VS而言,這是一個常規的csproj;在TC方面,我已經清理了文件夾,從零開始重建等等 – Thomas

0

我找到了解決辦法;在項目文件中,VS提出這樣的:

<OutputTypeEx>library</OutputTypeEx> 

我需要添加一行:

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

所以它看起來像TeamCity的構建不處理OutputTypeEx屬性格式,但它處理OutputType one。

我仍然認爲這是一個錯誤,但至少有一個解決方法。