Я знаю, что этот вопрос уже задают бесчисленное количество раз. Однако я не нашел для себя рабочего решения.

У меня есть проект веб-сайта .NET, и я использую Entity Framework 6. Локально у проекта проблем нет, все работает нормально. Но когда я отправляю его в свою главную ветку на GitHub, чтобы он был развернут на моем веб-сайте Azure, появляется сообщение: введите описание изображения здесь

Вот мой yml-файл:

    on:
  push:
    branches:
      - master
  workflow_dispatch:

jobs:
  build-and-deploy:
    runs-on: windows-latest

    steps:
    - uses: actions/checkout@master

    - name: Set up .NET Core
      uses: actions/setup-dotnet@v1
      with:
        dotnet-version: '3.1.301'

    - name: Restore NuGet packages
      run: nuget restore MyOnlineCV.sln

    - name: Build with dotnet
      run: dotnet build --configuration Release

    - name: dotnet publish
      run: dotnet publish -c Release -o ${{env.DOTNET_ROOT}}/myapp

Это происходит на этапе «Сборка с помощью dotnet». Как я должен это решить? Заранее спасибо

И мой .csproj для любопытных:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectGuid>{A9A08EBE-F204-4570-9B5F-1EBE5D3E63AA}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>Data</RootNamespace>
    <AssemblyName>Data</AssemblyName>
    <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <Deterministic>true</Deterministic>
    <NuGetPackageImportStamp>
    </NuGetPackageImportStamp>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
      <HintPath>..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll</HintPath>
    </Reference>
    <Reference Include="EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
      <HintPath>..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll</HintPath>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.ComponentModel.DataAnnotations" />
    <Reference Include="System.Core" />
    <Reference Include="System.Data.Entity" />
    <Reference Include="System.Runtime.Serialization" />
    <Reference Include="System.Security" />
    <Reference Include="System.Xml.Linq" />
    <Reference Include="System.Data.DataSetExtensions" />
    <Reference Include="Microsoft.CSharp" />
    <Reference Include="System.Data" />
    <Reference Include="System.Net.Http" />
    <Reference Include="System.Xml" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="Category.cs">
      <DependentUpon>MyOnlineCVDataModel.tt</DependentUpon>
    </Compile>
    <Compile Include="Diploma.cs">
      <DependentUpon>MyOnlineCVDataModel.tt</DependentUpon>
    </Compile>
    <Compile Include="Experience.cs">
      <DependentUpon>MyOnlineCVDataModel.tt</DependentUpon>
    </Compile>
    <Compile Include="MyOnlineCVDataModel.Context.cs">
      <AutoGen>True</AutoGen>
      <DesignTime>True</DesignTime>
      <DependentUpon>MyOnlineCVDataModel.Context.tt</DependentUpon>
    </Compile>
    <Compile Include="MyOnlineCVDataModel.cs">
      <AutoGen>True</AutoGen>
      <DesignTime>True</DesignTime>
      <DependentUpon>MyOnlineCVDataModel.tt</DependentUpon>
    </Compile>
    <Compile Include="MyOnlineCVDataModel.Designer.cs">
      <AutoGen>True</AutoGen>
      <DesignTime>True</DesignTime>
      <DependentUpon>MyOnlineCVDataModel.edmx</DependentUpon>
    </Compile>
    <Compile Include="Properties\AssemblyInfo.cs" />
    <Compile Include="Skill.cs">
      <DependentUpon>MyOnlineCVDataModel.tt</DependentUpon>
    </Compile>
  </ItemGroup>
  <ItemGroup>
    <None Include="App.config" />
    <EntityDeploy Include="MyOnlineCVDataModel.edmx">
      <Generator>EntityModelCodeGenerator</Generator>
      <LastGenOutput>MyOnlineCVDataModel.Designer.cs</LastGenOutput>
    </EntityDeploy>
    <None Include="MyOnlineCVDataModel.edmx.diagram">
      <DependentUpon>MyOnlineCVDataModel.edmx</DependentUpon>
    </None>
  </ItemGroup>
  <ItemGroup>
    <Content Include="DbScripts\drop_create.txt" />
    <Content Include="MyOnlineCVDataModel.Context.tt">
      <Generator>TextTemplatingFileGenerator</Generator>
      <LastGenOutput>MyOnlineCVDataModel.Context.cs</LastGenOutput>
      <DependentUpon>MyOnlineCVDataModel.edmx</DependentUpon>
    </Content>
    <Content Include="MyOnlineCVDataModel.tt">
      <Generator>TextTemplatingFileGenerator</Generator>
      <DependentUpon>MyOnlineCVDataModel.edmx</DependentUpon>
      <LastGenOutput>MyOnlineCVDataModel.cs</LastGenOutput>
    </Content>
  </ItemGroup>
  <ItemGroup>
    <Service Include="{508349B6-6B84-4DF5-91F0-309BEEBAD82D}" />
  </ItemGroup>
  <ItemGroup>
    <PackageReference Include="EntityFramework">
      <Version>6.4.4</Version>
    </PackageReference>
    <PackageReference Include="EntityFramework.fr">
      <Version>6.2.0</Version>
    </PackageReference>
  </ItemGroup>
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

Сборка уже иногда работала, но после одного нажатия просто перестала работать. Я не менял никаких внутренних файлов. я потерялся

Редактировать

Вот проект packages.config:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="EntityFramework" version="6.4.4" targetFramework="net472" />
  <package id="EntityFramework.fr" version="6.2.0" targetFramework="net472" />
</packages>
0
Dyanek 17 Фев 2021 в 23:17

2 ответа

Лучший ответ

Наконец, чтобы решить проблему, я сделал следующее: я удалил все nuget Entity Framework. Я удалил packages.config, а в .csproj удалил это:

<ItemGroup>
    <PackageReference Include="EntityFramework">
       <Version>6.4.4</Version>
    </PackageReference>
    <PackageReference Include="EntityFramework.fr">
      <Version>6.2.0</Version>
    </PackageReference>
</ItemGroup>

Я переустановил Entity Framework, вот новый файл packages.config:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="EntityFramework" version="6.4.4" targetFramework="net472" />
</packages>

И добавленные строки в файле .csproj:

<Import Project="..\packages\EntityFramework.6.4.4\build\EntityFramework.props" Condition="Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.props')" />
...
<None Include="packages.config" />
...
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
    <PropertyGroup>
      <ErrorText>This project is referencing to missing NuGet packages on this computer. Use the NuGet packages restoration option to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is: {0}.</ErrorText>
    </PropertyGroup>
    <Error Condition="!Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\EntityFramework.6.4.4\build\EntityFramework.props'))" />
    <Error Condition="!Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\EntityFramework.6.4.4\build\EntityFramework.targets'))" />
  </Target>
  <Import Project="..\packages\EntityFramework.6.4.4\build\EntityFramework.targets" Condition="Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.targets')" />

Затем я перешел на git, и конвейер работал правильно.

Обратите внимание, что этап run: nuget restore MyOnlineCV.sln в конвейере важен. Без этого появляется ошибка.

0
Dyanek 26 Фев 2021 в 09:48

Здесь вы создаете свой проект с помощью фреймворка 4.7.2, но в yml вы ссылаетесь на .Net Core Framework. Не в этом ли проблема?

1
Oliver Dzaeck 17 Фев 2021 в 20:22