質問

私は、データ アクセスに Linq to Sql を利用する、まともなサイズのソリューション (13,000 LOC 強、5 プロジェクト) を楽しくコーディングしていました。突然、通常のビルドを実行すると、甘くて曖昧なメッセージが届きました。

エラー 1 C:\xxx\xxx.dbml の検証エラーのため、ビルドが失敗しました。ファイルを開いてエラー リストの問題を解決し、プロジェクトを再ビルドしてみてください。C:\xxx\xxx.dbml

何週間もデータ アクセス層に触れていなかったので、DBML ファイルに対する調整は何も行われていませんでした。(ファイル レベルの破損があった場合に備えて) Visual Studio を再起動した後、レイアウト ファイルを再作成し、コピーを作成し、既存のファイルをプロジェクトに再追加するなど、無謀なトリックをたくさん試しました。すべて無駄です。

Visual Studio Skills +5 のタリスマンを着用するのを忘れたので、検索を開始しました。見つけた唯一の意味のある答えは、Visual Studio がアセンブリを正しく読み込んでいないため、パッケージをリセットすることでした。走った後は」devenv.exe /resetskippkgs実際、dbml ファイルを DAL プロジェクトに追加し直し、ソリューションを再構築することができました。

修正されたのはうれしいですが、この経験からより深く理解したいと思っています。 Visual Studio 2008 でこれがどのように、またはなぜ起こるのか知っている人はいますか?

新しい編集:2008 年 10 月 30 日 これは私にだけ起こったことではありません。リッチ・シュトラールは最近、自身の「ウェブログ」に次のように書いています。 同じような経験について. 。彼は別のリンクにリンクしています 同じ問題をブログに投稿し、同じアクションを使用しました.

この元の投稿以来、私も何度かこの問題に遭遇しており、これは偶然の問題ではないと考えています。誰かが最終的な答えを見つけた場合は、投稿してください。

役に立ちましたか?

解決

TBH、ファイルが「おかしくなったように見える」このような例がいくつかありました。しかし、調査の結果、ファイルは何らかの形で変更されているようです。(例えば。場合によっては、ファイルのどこかにあるプロパティを誤って変更することにより、ファイルに変更が加えられる可能性があります。 らしい 無関係)。

この問題の原因となる可能性のある問題はたくさんあると思いますが、問題が解決されたという事実に基づくと、答えは見つからないようです。

他のヒント

Phalanger for Visual Studio 2008 をインストールした後、新しい PHP WinForms アプリケーションを作成しようとしました。プロジェクトの作成は、必要な DLL を読み込めないことを示す同様のエラー メッセージで失敗しました (ファイルまたはアセンブリの読み込みに失敗しました...)。Visual Studio 2008 コマンド プロンプトで devenv.exe /resetskippkgs コマンドを実行すると、問題はすぐに解決されました。

情報をありがとう。

2 番目のソリューション (インストーラー) でデータ アクセス レイヤーをコンパイルしようとすると、このエラーが発生します。私が行うことは、dbml ファイルに対してカスタム ツールを実行することです。これにより、それが実行されます。

実際には、dbml ファイルには修正が必要なエラーはありません。

これに関する私の理論は、Visual Studio は dbml ファイルのコンパイルされたバージョンをキャッシュし、そのキャッシュは他のソリューションでは無効であるというものです。/resetskippkgs を実行すると、dbml ファイルを再コンパイルするのと同じことになると思います。

とにかく、これに対する修正はまだありませんか?

VS 2010でも同じ問題が発生しました(dbmlファイルの検証エラーによりビルドが失敗しました)。dbml ファイルのデザイナービューを表示し、テーブルを別の場所に少しドラッグして、dbml レイアウトなどのファイルを更新することでこれを解決しました。これでうまくいくように見えましたが、少し奇妙な問題でした。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top