2017-06-14 3 views
1

私の目標は、dotnetcoreクラスライブラリから共有プロジェクトを参照することです。dotnetcore classlibで共有プロジェクトを参照し、WindowsとLinuxでビルド作業をしています

これを行うために、Windows上のビジュアルスタジオ2017の.NETコマンドラインツール(1.0.4)でlinuxで作成したソリューションを開きました.vs2017でサポートされているshprojsの参照を読んでいます。だから私は、対使用して参照を追加し、それが.netcoreライブラリcsprojファイルに次の行を追加:

<Import Project="..\Objects\LogoRecognitionShared.projitems" Label="Shared" /> 

この時点で、私はすべてが完璧に動作するつもりだったと思いました。私はビジュアルスタジオでそれをビルドし、そこに問題はありません。私は自分のcliのバージョンがWindowsとLinuxで同じだったので、プロジェクトは同じ方法で構築され、同じ機能をサポートすると思った。

しかし、これらの変更をLinuxで試したときに、「error CS0246: The type or namespace name 'TypeName' could not be found (are you missing a using directive or an assembly reference?)」というメッセージが届きました。

私も<Compile Include="..\Objects\*.cs"/>ステートメントを使用し、同じエラーが発生しました。しかし、私は両方を使用する場合私は得るwarning CS2002: Source file 'Objects/*.cs' specified multiple times

私はこの問題をトラブルシューティングする方法がわかりません。ビルドプロセスでは、これらのファイルを出力に組み込む必要があることはわかっていますが、ビルドが実際に行われたときには、ビルドプロセスはアウトプットを破棄し、参照が壊れています。

どのようなヘルプも素晴らしいでしょう。

答えて

1

よく、私の問題を引き起こしていたことが分かったと思います。私の共有プロジェクトの1つに不正なRootNamespace値がありました。だから私はvs2017から修正してからクリーンビルドを行い、驚いたことにそれはLinux上で動作しました...

関連する問題