.Net CoreプロジェクトのWebプロジェクトがあり、さまざまな理由でそれを.Net Frameworkプロジェクトに変換したいと考えています。
これを行う簡単な方法はありますか、もう一度開始して以前のプロジェクトからコードをインポートする必要がありますか
コアプロジェクトをVS 2017 RCコミュニティに読み込み、テキストエディターで* .csprojを開きました。
テグを削除するだけ
<RuntimeFrameworkVersion>
そして交換
<TargetFramework>netcoreapp1.1</TargetFramework>
に
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
そして、すべてのプロジェクトプロパティで別のフレームワークに設定し、リセットし直します(VSリロードおよび修復* .csprojファイル)。
これは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から追加できます。
ここでの答えはどれも役に立たなかった。 .Net Core 2では、project.jsonファイルはもう存在しません。ただし、次の手順を使用してこの問題を解決しました。
1)既存のプロジェクトからすべてのnugetパッケージを削除しました。
2).net 4.61をターゲットとする別個の.netコアWebアプリプロジェクトを作成しました。これは、デフォルトのnugetパッケージを取得することでした。
3)一時プロジェクトの.csprojファイルを編集し、ItemGroup内のすべてのPackageReferenceノードをコピーして、既存のプロジェクトの.csprojファイルに貼り付けました。
4)TargetFrameworkノード(PropertyGroup内)を「netstandard2」から「net461」に編集しました
追跡して解決するためにいくつかのパッケージを変更しましたが、それ以外の場合は実行できました。
私はこれをやった、それは働いた
削除する
"Microsoft.NETCore.App": {
"version": "1.1.0",
"type": "platform"
}
project.jsonから
次に、フレームワークの部分をこれに置き換えます:
"frameworks": {
"net46": { }
},
その後、パッケージを復元します。
編集:これは現在時代遅れです。
ここには似たような答えがたくさんありますが、私がやったことはまったくありませんでしたので、誰かが同じ靴を履いている場合に備えてここに残したいと思います。
明確にするために、私のプロジェクトはコンソールプログラムだったので、この答えを別の目的に使用しようとすると、走行距離が変わる可能性があります。
.csproj
ファイル内の<PropertyGroup></PropertyGroup>
タグ内で、次を反映するように<TargetFramework>
を変更します。
<TargetFramework>net461</TargetFramework>
さて、この例では、v4.6.1を使用していました。私は、ピリオドなしで、Wordの「ネット」の背後にバージョンをプラグインすることしか想定できない。幸運を!
私のバージョンのVisual Studio 2017(15.6.2)では、「プロジェクトのアンロード」の後、右クリックして「Edit <your project file>
」を選択し、
ノードを追加します。
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
ノードを削除します。
<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>
私の.net標準プロジェクトは、いくつかのNugetパッケージで比較的単純です。ちょうど変わった
<TargetFramework>netstandard2.0</TargetFramework>
に
<TargetFramework>**net461**</TargetFramework>
.csprojファイルのPropertyGroupセクションにあり、これは私のために仕事をしてくれました。コメントで答えてくれたBrandon Barkleyにありがとう。
以下をcsprojに追加してください
<PropertyGroup>
<TargetFrameworks>netcoreapp2.1;net471</TargetFrameworks>
</PropertyGroup>
これを実現するには、いくつかの手順を実行する必要があります。
<TargetFrameworks>netstandard2.0;netcoreapp2.0;net35;</TargetFrameworks>
<RuntimeIdentifiers>win7-x86;win7-x64</RuntimeIdentifiers> <EnableDefaultCompileItems>false</EnableDefaultCompileItems>
.dll
ファイルとNugetパッケージが生成されます。.dll
をヌジェに追加し、ヌジェからこれらのプロジェクトにアクセスします。上記の手順を試してください。これは動作するはずです。