1

奇妙な理由でビルドに失敗している C# Windows Forms アプリケーション (App.exe と呼びましょう) があります。これは、Visual Studio 2010 のバグが原因のようです。私は VS2012 にアップグレードする立場にありません。

  • コードの変更とビルドの後、VS2010 は古いバイナリ App.exe の削除に失敗したようです。
  • 次に、古いバイナリ内のいくつかの型を検出し、「呼び出しが次のメソッドまたはプロパティの間であいまいです」というエラーをスローします。
  • エラー メッセージに表示される型は同じです。だから、古いバイナリとソースコードの両方で型を見つけていると思います。
  • ディスクから古いバイナリの App.exe をクリーンアップして再構築するか削除すると、ビルドは成功します。

これは、私が遭遇しているエラーのタイプの例です:

The call is ambiguous between the following methods or properties:     
'App.Namespace.Class.Method(System.Type)' 
and 
'App.Namespace.Class.Method(System.Type)'   

この問題を解決するための助けに感謝します。

編集

これは、App がそれ自体へのアセンブリ参照を持っていることが原因でした。それがどのように起こったのかはわかりませんが、参照を削除すると問題は修正されました。

4

1 に答える 1

0

新しいプロジェクトを作成してみましたか? 新しいプロジェクトを作成し、既存のファイルを追加するだけです。ソリューション フォルダー内の bin フォルダーと obj フォルダーを削除することもできます。

更新しました

これは一種の自動化されたハックですが、うまくいくはずです。プロジェクトを右クリックして、そのプロパティを開きます。ビルド イベントに移動し、ビルド前イベントのコマンド ラインに次のように入力します。

cd $(TargetDir)
del *.exe

これにより、ビルド前に古いバイナリ ファイルが削除されます。お役に立てれば。

于 2013-03-14T12:21:05.383 に答える