2012-02-10 19 views
0

Visual Studio 2010を使用してコンソールアプリケーションを書き直しています。元のアプリケーションはVisual Studio 2008を使用して作成されていて問題なく動作しますが、それ。それで、テストでそれを書き直す考え。Visual Studio 2010およびSharepoint 2007での開発新しいSPSiteの使用時にエラーが発生する

両方のアプリケーションがSharepoint 2007サイトで動作しています。

プロジェクトはコンパイルされますが、試してみると、以下のコードでエラーが発生しています。

 SPSite spsite = null; 
     SPSecurity.RunWithElevatedPrivileges(delegate() { 
      spsite = new SPSite("http://sharepointdev"); 
     }); 

     return spsite; 

私はx86のようにビルドのプラットフォームターゲットを設定している(これは私のプロジェクトのプロパティである)とセキュリティで、私はこれがあることをチェックしましたのWindows Server 2008上でこれを実行しています完全な信頼アプリケーション。また、プロジェクトを管理者として実行しています。また、.NET Frameworkを3.5と設定しました。

SharePoint 2007はVisual Studio 2010で再生したくないというケースか、まだ検討していないものがありますか?

私はウェブとstackoverflowの上で検索を試みたが、私はSharepointの2010年

と仕事をするのVisual Studio 2010を取得しようとしているとの契約を見てきたすべての記事は、私が手に正確なエラーが「オブジェクト参照ではありませんデバッガがSPSecurityコールを高く点灯させてオブジェクトの瞬間に設定します。

私はその後、私は正確に真実ではないにFileNotFoundExceptionを取得このコード

using(SPSite spsite = new SPSite("http://sharepointdev")){ 

を使用している場合は!私は、そのURLを使ってサイトを見つけるアプリケーションがたくさんある。私は、エラーメッセージは、私の2010年のアプリケーションは、サイトにアクセスすることが許可されていないが、私はそれがすべき理由についての手がかりを発見していないと言いたいと思う。

感謝の意を表するヒントやヒントがあります。

EDIT

私はVS 2010のプロジェクトからコードを解除し、新しいVS 2008のプロジェクトにそれを落とし、それがストレート離れを走ってきました。

FURTHER EDIT

私はそれが私がの.NET Framework 3.5に設定しなければならなかったの.NET Framework 4を使用し、デフォルトでは、VS 2010でのシンプルで小さなコンソールアプリケーションを作成しました。私はまた、プラットフォームターゲットを「Any CPU」に設定しています。これは私の最初のアプリケーションに関連するテストプロジェクトに問題があるのだろうかと思います。

今回はコンソールアプリケーションを再作成しましたが、今回はテストプロジェクトが関連付けられていません(テストプロジェクトはクラスライブラリであり、NUnitを使用していました)。それは問題なく走った。私はこの問題はテストプロジェクトの中にあり、そこには解決策が気に入らないものがあると思います。おそらくそれが好きではないビルドがあります

+1

特定の問題とは関係ありません。最初のコードリストでは、新しいSPSiteオブジェクトを作成して呼び出し元に返します。私は本当にあなたがそれを完了したときにこのオブジェクトを処分していることを願っています。あなたがこれを気にしないと、漏れたメモリとパフォーマンスが悪くなります(アプリケーションプールはメモリのしきい値にリサイクルします)。 –

+0

こんにちはエリック、私はそのオブジェクトを処分していることを心配しないでください。コードの最初のビットは、使用ブロック内から呼び出される関数に由来します。しかし、潜在的な問題を指摘していただきありがとうございます。 –

+0

奇妙 - .NET 4.0向けのテストプロジェクトでしたか? –

答えて

2

TL; DR;答え:任意のCPUビルドに切り替える - x86を選択しないでください。

コンソールユーティリティでこれまでにこの問題に遭遇しました。同じFileNotFoundエラーが表示されますが、SharePointサイトではなくDLLを参照しています。少し掘り下ろすBadImageFormatの深いエラーを発見し、それがDLLまたはEXEについて不平を言っていることに気付きました。私はそれがx86から​​MSILへのリンクのためだと思いました。 2人の間でコールをマーシャリングするためには、多くのことが起こることがあり、それが非互換性につながったと思います。 MSIL/Any CPUに組み込まれた(サポートライブラリのすべてのプロジェクトを確認して)それを切り替えても、アプリケーションは問題なく動作し、他の変更はありませんでした。

私はVisual Studio 2010を使用して、SharePoint 2007の開発を終日続けていますが、遭遇した唯一の問題はその組み合わせに関連していません。多くの場合、私が使用しているサードパーティ製のアドオンの変種です。私の開発のほとんどはWSP Builderのテンプレートから始まりますが、バグがあり、回避する必要のあるいくつかの欠点があります(SharePointサーバーを停止するほど重大なものもあります)ので、VS 2010を直接責めません。

+0

こんにちはエリック、私は '任意のCPU'に戻り、今私は 'プロジェクトを実行しようとするとエラーが発生します。ファイルまたはアセンブリまたはその依存関係の1つを読み込めませんでした。不正な形式のプログラムをロードしようとしました。これが、ビルドをx86に変更するルートを去った理由です。私は使用しているカスタムDLLをチェックするつもりです。私は(そしてあなたの第2段落のあなたのコメントによって)私の疑いが疑わしくなります。知らせます。 –

+0

こんにちは、私はカスタムDLLを削除した、私はそれの1つのメソッドを使用していたので、私はそのコードを私のアプリに引っ張ってきました、ちょうど候補を削除するのに役立ちます。私はまだ '間違ったフォーマットのプログラムをロードしようとしました'というメッセージが表示されています。私はMicrosoft.Sharepoint DLLを参照しています、これはバージョン12で、ランタイムバージョンv2.0.50727を持っています。それが犯人だろうか? –

+0

いいえ、SharePointが壊れていたり見つからなかったり、SharePointに対して書き込むオブジェクトモデルコードの参照が必要な場合、SharePointは実行されません。 Bad Image Formatは、ほとんどの場合、x86とMSILのライブラリとビルドターゲットが原因です。私はいつもすべてがcomであることを保証してこれを解決することができました...あなたが参照している.NET 4.0アセンブリはありませんか?もし私が正しく覚えていれば、それもやります。 –

関連する問題