3

Sharepoint WSS3 機能のテスト プログラムを作成しましたが、奇妙な例外が発生しました。

public XmlNode GetListsCollection()
{
    XmlNode nodeLists;

    ShareLists.Lists lists = new ShareLists.Lists(); // <--- Exception causing line
    lists.Credentials = CredentialCache.DefaultCredentials;

    return nodeLists = lists.GetListCollection();
}

// ここに例外が表示されます (Settings.Designer.cs)

[global::System.Configuration.ApplicationScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.WebServiceUrl)]
[global::System.Configuration.DefaultSettingValueAttribute("http://uk-tr-dsf/_vti_bin/Lists.asmx")]
public string SharepointWeb_ShareLists_Lists {
    get {
        return ((string)(this["SharepointWeb_ShareLists_Lists"]));
    }
}

このエラーは、プロジェクトを .NET 4 から .NET 3.5 に変更したときに発生しました。これは、"PlatformNotSupportException" を修正するために必要でした。

だから、元に戻すことはできません。

System.Configuration.ConfigurationErrorsException was unhandled
  Message=An error occurred creating the configuration section handler for applicationSettings/SharepointWeb.Properties.Settings: Could not load file or assembly 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The system cannot find the file specified. (C:\Working\SharepointPlugin\SharepointWeb\bin\Debug\SharepointWeb.vshost.exe.Config line 5)
  Source=System.Configuration
  BareMessage=An error occurred creating the configuration section handler for applicationSettings/SharepointWeb.Properties.Settings: Could not load file or assembly 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The system cannot find the file specified.
  Filename=C:\Working\SharepointPlugin\SharepointWeb\bin\Debug\SharepointWeb.vshost.exe.Config
  Line=5
  Stacktrace: ... omitted

ConfigurationErrorsExceptionこれはデリゲートであり、実際の例外メッセージは内部例外であることに気付きました。

System.IO.FileNotFoundException
           Message=Could not load file or assembly 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The system cannot find the file specified.

現在、このファイルが見つかり、参照に明確に存在しますが、Microsoft.CSharp欠落しています (.NET 3.5 プロジェクトであるため)。これが原因であると仮定するのは正しいでしょうか? .NET 4 のフレームワークのバージョンはありますか? 調べてみましたがC:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\、同等のバージョンが見つかりません。


解決:

これらを変更する必要がありました

resx ファイルで:

  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>

app.config で:

<configSections>
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
        <section name="SharepointWeb.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
    </sectionGroup>
</configSections>
4

2 に答える 2

5

3.5 用の Microsoft.CSharp.dll はありませんが、必要なく 4.0 プロジェクトに自動的に追加されることがよくあります (プロジェクトが 4.0 である必要がある dynamic キーワードなどを使用している場合を除きます)。この参照を削除します。

system.dll のバージョン 4 に関して、このファイルが見つかり、参照に存在すると言います。ただし、プロジェクトが 3.5 フレームワーク用の場合は、フレームワーク 4 バージョンの system.dll ではなく、2.0 バージョンの system.dll を参照する必要があります。

同様に、他の dll がフレームワーク 4 用でないことを確認する必要があります。

于 2012-05-24T16:50:12.657 に答える
1

ツールで使用されている 4.0 アセンブリがまだいくつかあるようです。ターゲットを 2.0 ~ 3.5 に切り替えるときは、4.0 アセンブリの使用を停止する必要があります。残念ながら、古いバージョンのフレームワークに移行しているため、4.0 のみの機能を使用しないようにコードを変更する必要がある場合があります。

于 2012-05-24T16:30:36.437 に答える