2016-05-10 3 views
3

私たちは、ユーザーが統合したいMicrosoft Great Plainsソフトウェアのバージョンを選択することができ、その結果、それらを統合するために使用する必要があるMicrosoft Econnect DLLのバージョンを実行時に選択できるソフトウェアがあります。私たちのコードは多くのランタイム調査を行い、必要に応じて適切なDLLを切り替えて読み込みます。私たちが許可したい唯一の競合についてMSB3277の警告を非常に外科的かつ特別に抑制する方法はありますか?

彼らは、実行時に使用できるように、しかし、私たちは、溶液中のすべてのDLLを含める必要があり、その溶液中でそれらすべてを含めて、すなわち、MSB3277の警告につながる:

警告MSB3277:との間に見られる競合を解決できなかった同じ依存アセンブリの異なるバージョン。ログの冗長性が詳細に設定されている場合、これらの参照競合はビルドログに表示されます。我々はそれを解決するよう、私は、これだけの競合のための警告を抑制したい

29> There was a conflict between "Microsoft.Dynamics.GP.eConnect, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" and "Microsoft.Dynamics.GP.eConnect, Version=11.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35". 
29>  "Microsoft.Dynamics.GP.eConnect, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" was chosen because it was primary and "Microsoft.Dynamics.GP.eConnect, Version=11.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" was not. 
29>  References which depend on "Microsoft.Dynamics.GP.eConnect, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" [C:\Development\Main\Tools\bin\GP10\Microsoft.Dynamics.GP.eConnect.10.dll]. 
29>   C:\Development\Main\Tools\bin\GP10\Microsoft.Dynamics.GP.eConnect.10.dll 
29>   Project file item includes which caused reference "C:\Development\Main\Tools\bin\GP10\Microsoft.Dynamics.GP.eConnect.10.dll". 
29>    Microsoft.Dynamics.GP.eConnect.10 
29>  References which depend on "Microsoft.Dynamics.GP.eConnect, Version=11.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" []. 
29>   C:\Development\Main\Client\IntegrationModule\bin\Debug\GreatPlains2010Interface.dll 
29>   Project file item includes which caused reference "C:\Development\Main\Client\IntegrationModule\bin\Debug\GreatPlains2010Interface.dll". 
29>    C:\Development\Main\Client\IntegrationModule\bin\Debug\IntegrationModule.dll 
29>   C:\Development\Main\Client\IntegrationModule\bin\Debug\GreatPlainsInterface.dll 
29>   Project file item includes which caused reference "C:\Development\Main\Client\IntegrationModule\bin\Debug\GreatPlainsInterface.dll". 
29>    C:\Development\Main\Client\IntegrationModule\bin\Debug\IntegrationModule.dll 
29>C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1820,5): warning MSB3277: Found conflicts between different versions of the same dependent assembly that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed. 

:診断モードで生成されたログファイルを見ると、以下のように、関連する行がある

現時点では自分自身ではなく、この警告を出すために発生する可能性のあるその他の競合を許可します(現在はなし)。

これを行う方法はありますか?

また、バインディングリダイレクトを理解している人が、私が最初に警告を回避する方法を提案することはできますか?

ありがとうございます。

+0

これはひどい解決策ではありません。誰かが少し上手くいくかどうかを見てみましょう....どちらかというと、下位の技術を指摘しても合理的な方法でこのことを指摘していただければ幸いです。 –

+0

@ denvercoder9 - 私はあなたのソリューションを実装しました。ワーキングソリューション。あなたがそれを投稿にしたいならば、解決策として受け入れることを幸せにしてください。再度、感謝します。 –

+0

ありがとうございます。それはうまくいってうれしい! – denvercoder9

答えて

2

年前私も同様の問題がありました。 (私が見つけた)唯一の方法は、既知の場所から必要なDLLをbin \場所にコピーしたビルド後のコマンドで解決することでした。 しかし、最近はおそらくもっと良い答えがあります。

+0

これは最善の解決策だと思います。低技術ですが、合理的で、明確で、未来の開発者にとって明白です。 –

関連する問題