6

現在、.net コードはプロセッサ固有ではありませんが、ライブラリ (Oracle/ODP.Net) に依存しています。csproj ファイルを直接編集し、選択したビルド構成に基づいて Condition 句を使用して項目グループに参照を配置するソリューションを見つけました。32 ビットのデバッグ/リリースと 64 ビットのデバッグ/リリースがあり、その構成をビルドするときに正しいアセンブリが参照されます。

これはビルド時に多かれ少なかれ機能しますが、Visual Studio (2008) であらゆる種類の奇抜さを引き起こします。最終的な結果として、同じアセンブリが参照の下に 4 回表示され、3 回には黄色の感嘆符が付いています。また、取り除くことができない 76 個の警告も生成されます。新しい警告がいつ表示されるかを知りたいので、警告を 0 にしようとしますが、これは少し問題です。

条件付き参照の解決策を知っている人はいますか?単一の参照のように見えるようにし(実際にはそうです)、ビルド時に警告がいっぱいにならないようにしますか?

4

2 に答える 2

1

探していたものとは少し違う答えを見つけましたが、ちょっと気に入っています。これをruntime->AssemblyBindingで設定ファイルに追加した場合

<dependentAssembly>
<assemblyIdentity name = "Oracle.DataAccess" publicKeyToken = "89b483f429c47342" />
<bindingRedirect oldVersion = "2.111.6.20" newVersion = "2.111.6.0" />
</dependentAssembly>

次に、64ビットバージョンと32ビットバージョンは同じビルドで動作します。デプロイするときにOracle.DataAccess.dllをローカルにコピーして、GACからプルさせるだけではありません。

ありがとう!

于 2009-05-19T20:53:27.373 に答える
1

頭に浮かぶ唯一のことは、4 つの個別のプロジェクト ファイルを持つことです...しかし、クラスを追加するたびに 4 つのファイルを維持しなければならないことについてパニックになる前に、ここで別の csproj トリックを使用できます。

<Compile Include="**\*.cs" />

これ(IIRC)は、「フォルダー構造の任意のレベルにあるすべてのcsファイルを含める」と言っています。

于 2009-05-12T22:10:23.167 に答える