2017-08-28 27 views
3

私はVS 2015で作成された共有ライブラリプロジェクトを持っています。ターゲットには ".NETStardard1.4"と表示されます(Win10 UWPをサポートする必要があるためアップグレードできません)。Visual Studio 2015プロジェクトをVisual Studio 2017に変換しますか?

VS2017のインポートとビルドが問題ありません。

しかし、.NETのコアコマンドラインdotnet buildは、私は新しい.NET Stardard 1.4クラスライブラリプロジェクトを作成するためにVS2017を使用しましたThe imported project "C:\Program Files\dotnet\sdk\2.0.0\Microsoft\Portable\v5.0\Microsoft.Portable.CSharp.targets" was not found

言います。 .vcprojファイルの内容は完全に異なります。最初の行は<Project Sdk="Microsoft.NET.Sdk">と言っていますが、VS2015で作成したプロジェクトの場合は<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">と表示されています。dotnet buildというコマンドラインは、VS2017で作成したプロジェクトをうまく構築しました。

質問は、これらのコマンドライン.NETコアビルドツールを有効にするために、VS2015からVS2017(実行時バージョンを維持する)に.NET Stardard 1.4プロジェクトを変換するにはどうすればいいですか?

+0

私は質問に答えましたが、私はその一部に答えるのを忘れたと思います。「ランタイムバージョンを保持する」とはどういう意味ですか? –

+0

@JoséPedro私はそれが.NET標準1.4にとどまる必要があることを意味します。それをアップグレードすると、Win10 UWPでの実行が停止します。 – Soonts

+3

古いcsprojから新しいcsproj形式にいくつかのプロジェクトを移行したら、空のプロジェクトを作成し、手動でファイルを移動して参照を読んだりすることをお勧めします。それは、あらゆるレガシープロジェクトの設定を通過し、何を持ち越し、どのように行うかを決めるよりもずっと簡単です。 – poke

答えて

1

IIRC、Microsoft.Portable.CSharp.targetsはPCLプロジェクトで使用されます。 PCLプロジェクトでの.NET Standardのサポートは廃止予定です。 CPSは、機能をグロブファイルを持っており、ロザリンプロジェクトシステムが自動的としてすべて.csファイルが含まれていることを

<Project Sdk="Microsoft.NET.Sdk"> 
    <PropertyGroup> 
     <TargetFramework>netstandard1.4</TargetFramework> 
    </PropertyGroup> 
</Project> 

注:VS 2017で新しいプロジェクトシステムを使用して

シンプル.NET標準1.4プロジェクトは、このようになりますCompileおよび.resxEmbeddedResourceとする。

関連する問題