2016-07-14 25 views
16

私は.csprojプロジェクトを持っていて、.xprojという他のプロジェクトを参照したいと思っていますが、すべてがうまく見えますが、ソリューションをビルドしようとすると.dllが見つからないためできません。私が.dll\bin\release\net452\...から参照すると、すべてが正常です。それを修正するには?.xprojを.csprojに参照する方法

編集:私は回避策を探していません - gulp.move()でgulpを使用しています。それはうまく動作しますが、汚い感じ...

+1

また、同じ問題が発生しています...私はそれがある時点で動作していたと確信していますが、今はうまくいくことを拒否しています。 – Adam

答えて

9

xprojをcsprojから直接参照することはできません。

これには2つの解決策があります。

A)xprojをNuGetパッケージとして配備し、csprojでNuGetパッケージを使用します。

B)cprojをxprojに変換します。

注:xprojは、使用している.NET csprojをサポートしている必要があります。 net451など

はここ

https://github.com/damienbod/ElasticsearchCRUD/tree/master/samples/ConsoleElasticsearchCrudExample

+0

可能な時点がありました。私は多くのワークアラウンドを知っています。しかし、私はそれを探していません。私が承認したものだけがproject.jsonなどを編集しています。悲しいことに、彼らはそのためのオプションがありません。だから今はgulp taskerを使用しています。 –

4

XProjが死んでいるxproj NuGetパッケージを参照csprojの例です。移植可能なクラスライブラリ(csproj)を使用し、互換性のために使用する.NET Standardとレベルに設定します。次にproject.jsonが作成されます(後で名前が変更される可能性が高い).csprojはまだそこに存在しているので、参照を簡単に追加するだけで動作します。

クロス互換性が必要な場合は、上記の手順を実行し、.NETコアソリューションの場合は既存のプロジェクトを追加し、.csprojではなくproject.jsonファイルを選択します。これにより、xprojも作成されます。ただし、xproj/project.jsonはマルチターゲティングをサポートしますが、.csprojはサポートされないため、試してみるとプロジェクトプロパティのUIが破られることに注意してください。 (それでも動作しますが、UIは死んでいます)

あなたの唯一の選択肢は、プロジェクトではなくdllにバインドすることです。 xprojを使用してターゲットを配置し、参照を追加し、参照でdllを選択することができます。

+0

もう少し詳しく説明してください – thepirat000

+0

細部に役立ちますか? –

+0

このアプローチでは、複数のフレームワークをまだターゲットにできますか? –

関連する問題