2017-11-10 6 views
1

VS2017では、QAの新しい構成を設定しようとしています。私は "QA"として設定を作成し、 "リリース"から設定をコピーしています。 "Create new project configurations"チェックボックスをオンにしました。VS2017 C#新しいビルド構成の作成ステートメントを使用したブレーク

ドロップダウンメニューでQAビルドに切り替えると、突然、デバッグまたはリリースにないEntity Frameworkエラーが表示されます。

そして

「型または名前空間名 '「型または名前空間名 『エンティティは、』名前空間 『System.Data』(あなたはアセンブリ参照が不足している?)には存在しません」 EntityConnectionStringBuilder 'が見つかりませんでした(使用しているディレクティブまたはアセンブリ参照がありません)?

デバッグまたはリリースに切り替えると、これらのエラーは消えて、すべて正常です。

は、ここで問題がで起こっているコードです:任意の助け

using Redacted.Stuff; 
using System.Data.Entity.Core.EntityClient; 
using System.Reflection; 

namespace MoreRedacted.Stuff 
{ 
public class RedactedClass 
{ 
    public static string GetConnectionString() 
    { 
     var self = Assembly.GetCallingAssembly().GetName().Name; 

     string constr = string.Empty; 

#if (DEBUG) 
     constr = "connection_dev"; 
#elif (QA) 
     constr = "connection_qa"; 
#else 
     constr = "connection_prod"; 
#endif 

     return new EntityConnectionStringBuilder 
     { 
      Provider = "System.Data.SqlClient", 
      ProviderConnectionString = (new ConfigManager()).ConnectionStrings["RedactedConnection"].ConnectionString, 
      Metadata = $"res://{ self }/EF.EFRedacted.csdl|res://{ self }/EF.EFRedacted.ssdl|res://{ self }/EF.EFRedacted.msl" 
     }.ToString(); 
    } 
    } 
} 

ありがとう!

+0

以前は見たことがありません。私はVSを閉じ、すべてのbinとobjのディレクトリを手作業でリークし、完全にビルドします。まだそれらのエラーが出ていたら、それをqaに入れて、EF用のナゲットパッケージを取り出して交換し、クリーンでビルドします。 – Will

+0

プロジェクトファイルには、それぞれのEntity Framework型を含むアセンブリを参照する要素に宣言された条件がありますか? –

+0

これが実行されているメソッドで条件がチェックされていますが、直接的な影響はありません。質問を編集してコードを追加します。 – nclayton

答えて

1

このプロジェクトは別のプロジェクトのコピーです(私はそれをMEFプラグインベースに分割しています)が、パッケージを引き継ぎませんでした。元のプロジェクトにEntityFrameworkがインストールされているにもかかわらず、元のプロジェクトにQA設定がないため、実際には意味があります。

私は、プロジェクトがコピーされ、新しい設定がミックスに追加された場合、ナゲットパッケージが破損することを忘れていると思います。 (私はそれがプロジェクトでナゲットがパッケージを設定する方法のためだと仮定しています)。

関連する問題