web-dev-qa-db-ja.com

.Net Coreを.Net Frameworkに変換する

.Net CoreプロジェクトのWebプロジェクトがあり、さまざまな理由でそれを.Net Frameworkプロジェクトに変換したいと考えています。

これを行う簡単な方法はありますか、もう一度開始して以前のプロジェクトからコードをインポートする必要がありますか

36
Richard Watts

コアプロジェクトをVS 2017 RCコミュニティに読み込み、テキストエディターで* .csprojを開きました。

テグを削除するだけ

<RuntimeFrameworkVersion>

そして交換

<TargetFramework>netcoreapp1.1</TargetFramework>

<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>

そして、すべてのプロジェクトプロパティで別のフレームワークに設定し、リセットし直します(VSリロードおよび修復* .csprojファイル)。

22
Alexander

これはVS2017で私のために働いた:

.netコアWebプロジェクトテンプレートから始めます。

* .csprojを編集して、次のようにします。

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

  <PropertyGroup>
    <TargetFramework>net472</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore" Version="2.1.3" />
    <PackageReference Include="Microsoft.AspNetCore.CookiePolicy" Version="2.1.2" />
    <PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="2.1.1" />
    <PackageReference Include="Microsoft.AspNetCore.HttpsPolicy" Version="2.1.1" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.1.2" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc.Core" Version="2.1.2" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc.RazorPages" Version="2.1.2" />
    <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.1.1" />
  </ItemGroup>

</Project>

保存して閉じます。

プロジェクトを実行してみてください。

PackReferencesは単なるNuGetファイルであり、バージョンが上記のバージョンと異なる場合は、GUIから追加できます。

11
Greg Gum

ここでの答えはどれも役に立たなかった。 .Net Core 2では、project.jsonファイルはもう存在しません。ただし、次の手順を使用してこの問題を解決しました。

1)既存のプロジェクトからすべてのnugetパッケージを削除しました。

2).net 4.61をターゲットとする別個の.netコアWebアプリプロジェクトを作成しました。これは、デフォルトのnugetパッケージを取得することでした。

3)一時プロジェクトの.csprojファイルを編集し、ItemGroup内のすべてのPackageReferenceノードをコピーして、既存のプロジェクトの.csprojファイルに貼り付けました。

4)TargetFrameworkノード(PropertyGroup内)を「netstandard2」から「net461」に編集しました

追跡して解決するためにいくつかのパッケージを変更しましたが、それ以外の場合は実行できました。

7
Brandon Ahearn

私はこれをやった、それは働いた

削除する

"Microsoft.NETCore.App": {
      "version": "1.1.0",
      "type": "platform"
    }

project.jsonから

次に、フレームワークの部分をこれに置き換えます:

 "frameworks": {
    "net46": { }
  },

その後、パッケージを復元します。

編集:これは現在時代遅れです。

2
Mu'men Tayyem

ここには似たような答えがたくさんありますが、私がやったことはまったくありませんでしたので、誰かが同じ靴を履いている場合に備えてここに残したいと思います。

明確にするために、私のプロジェクトはコンソールプログラムだったので、この答えを別の目的に使用しようとすると、走行距離が変わる可能性があります。

.csprojファイル内の<PropertyGroup></PropertyGroup>タグ内で、次を反映するように<TargetFramework>を変更します。

<TargetFramework>net461</TargetFramework>

さて、この例では、v4.6.1を使用していました。私は、ピリオドなしで、Wordの「ネット」の背後にバージョンをプラグインすることしか想定できない。幸運を!

2

私のバージョンのVisual Studio 2017(15.6.2)では、「プロジェクトのアンロード」の後、右クリックして「Edit <your project file>」を選択し、

  1. ノードを追加します。

    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>

  2. ノードを削除します。

    <TargetPlatformIdentifier>UAP</TargetPlatformIdentifier>

    <TargetPlatformVersion Condition=" '$(TargetPlatformVersion)' == '' ">10.0.16299.0</TargetPlatformVersion>

    <TargetPlatformMinVersion>10.0.16299.0</TargetPlatformMinVersion>

    <ProjectTypeGuids>{A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

0
VorTechS

私の.net標準プロジェクトは、いくつかのNugetパッケージで比較的単純です。ちょうど変わった

<TargetFramework>netstandard2.0</TargetFramework>

<TargetFramework>**net461**</TargetFramework> .csprojファイルのPropertyGroupセクションにあり、これは私のために仕事をしてくれました。コメントで答えてくれたBrandon Barkleyにありがとう。

0
Pawan

以下をcsprojに追加してください

  <PropertyGroup>
    <TargetFrameworks>netcoreapp2.1;net471</TargetFrameworks>
  </PropertyGroup>
0
lemon

これを実現するには、いくつかの手順を実行する必要があります。

  1. 最初に.csprojファイルを右クリックして、以下を追加します
   <TargetFrameworks>netstandard2.0;netcoreapp2.0;net35;</TargetFrameworks>
        <RuntimeIdentifiers>win7-x86;win7-x64</RuntimeIdentifiers> <EnableDefaultCompileItems>false</EnableDefaultCompileItems>
  1. これらの変更を行ったら、プロジェクトをリロードしてビルドします。
  2. これにより、プロジェクトのDebug/Releaseフォルダーにこのビルドの.dllファイルとNugetパッケージが生成されます。
  3. これらの.dllをヌジェに追加し、ヌジェからこれらのプロジェクトにアクセスします。

上記の手順を試してください。これは動作するはずです。

0
Sai Kiran