1

2 つのクラス ライブラリを参照する SharePoint ビジュアル Web パーツがあります。ライブラリは連携して、Web パーツに値を提供します。ソリューションは、エラーや警告なしでビルドされます....

1>------ Rebuild All started: Project: ClassLibrary1, Configuration: Debug Any CPU ------
1>  ClassLibrary1 -> c:\Projects\TempWebPart\ClassLibrary1\bin\Debug\ClassLibrary1.dll
2>------ Rebuild All started: Project: ClassLibrary2, Configuration: Debug Any CPU ------
2>  ClassLibrary2 -> c:\Projects\TempWebPart\ClassLibrary2\bin\Debug\ClassLibrary2.dll
3>------ Rebuild All started: Project: TempWebPart, Configuration: Debug Any CPU ------
3>  TempWebPart -> c:\Projects\TempWebPart\TempWebPart\bin\Debug\TempWebPart.dll
========== Rebuild All: 3 succeeded, 0 failed, 0 skipped ==========

ただし、スタートボタンを押してデバッグすると、エラーがスローされ、コンパイルされません...

1>------ Build started: Project: TempWebPart, Configuration: Debug Any CPU ------
1>  TempWebPart -> c:\Projects\TempWebPart\TempWebPart\bin\Debug\TempWebPart.dll
1>  ClassLibrary1 -> c:\Projects\TempWebPart\ClassLibrary1\bin\Debug\ClassLibrary1.dll
1>c:\Projects\TempWebPart\ClassLibrary2\Class2.cs(5,7,5,20): error CS0246: The type or namespace name 'ClassLibrary1' could not be found (are you missing a using directive or an assembly reference?)
========== Build: 0 succeeded, 1 failed, 2 up-to-date, 0 skipped ==========
========== Deploy: 0 succeeded, 0 failed, 0 skipped ==========

次のエラーと警告も表示されます。

Error   1   The type or namespace name 'ClassLibrary1' could not be found (are you missing a using directive or an assembly reference?) c:\Projects\TempWebPart\ClassLibrary2\Class2.cs 5   7   TempWebPart

2 つのクラスライブラリ プロジェクトの Webpart プロジェクトへの参照を追加しました。パッケージの下の詳細メニューにある 2 つのクラス ライブラリの「プロジェクト出力からのアセンブリ」も追加しました...

<Solution xmlns="http://schemas.microsoft.com/sharepoint/" SolutionId="0a8bd835-ad91-49a1-a82d-61e22081fbe6" SharePointProductVersion="14.0">
  <Assemblies>
    <Assembly Location="ClassLibrary1.dll" DeploymentTarget="GlobalAssemblyCache" />
    <Assembly Location="ClassLibrary2.dll" DeploymentTarget="GlobalAssemblyCache" />
    <Assembly Location="TempWebPart.dll" DeploymentTarget="GlobalAssemblyCache">
      <SafeControls>
        <SafeControl Assembly="TempWebPart, Version=1.0.0.0, Culture=neutral, PublicKeyToken=5ef7e45135ca6bea" Namespace="TempWebPart" TypeName="*" />
      </SafeControls>
    </Assembly>
  </Assemblies>
  <FeatureManifests>
    <FeatureManifest Location="TempWebPart_Feature1\Feature.xml" />
  </FeatureManifests>
</Solution>

私のライブラリは、このケースをテストするためだけに簡単です..コードは次のとおりです...

namespace ClassLibrary1
{
    public class Class1
    {
        public String Hello = "Hello";
    }
}
using ClassLibrary1;

namespace ClassLibrary2
{
    public class Class2
    {
        public String Hello = new ClassLibrary1.Class1().Hello;
    }
}

アセンブリは署名されています。WindowsForms アプリケーションで試してみましたが、正常に動作しています。vb ライブラリを試してみましたが、同様のメッセージが表示されます。私はどこかで一歩を踏み外していると思います。vs2012を使用しています。

私は試してみることに本当にこだわっています:(助けていただければ幸いです。

ありがとう

4

1 に答える 1

0
  • クラス ライブラリのターゲット フレームワークは何ですか? .NET Framework 3.5 である必要がありますか?
  • これらのアセンブリを Webpart プロジェクトの Package.xml に含める必要がある場合があります。

お役に立てれば..

于 2012-11-01T09:12:21.557 に答える