これが、WSSv2APIに対してコンパイルされた.NET1.1バージョンとWSSv3アセンブリに対してコンパイルされた.NET2.0を吐き出す方法です。VS2005および2008で機能します。
MSBEEhttp ://www.codeplex.com/Wiki/View.aspx? ProjectName= MSBeeを使用する必要があります
VisualStudio2008での.NET1.1の操作
いくつかのヒント
* .csprojを開き、SharePoint dllが参照されている場所を見つけて、ターゲットに応じて参照されるアセンブリを変更する次のようなものに変更します(FX1_1は、.NET1.1、したがってWSSv2をターゲットにしていることを意味します)
<Reference Include="Microsoft.SharePoint">
<HintPath Condition="'$(TargetFX1_1)'!='true'">pathto\WSS3\Microsoft.SharePoint.dll</HintPath>
<HintPath Condition="'$(TargetFX1_1)'=='true'">pathto\WSS2\Microsoft.SharePoint.dll</HintPath>
</Reference>
必要に応じて、違いに条件付きコンパイルを使用する
#if FX1_1
// WSSv2 specific code
#else
// WSSv3 specific code
#endif
コンパイラエラーが発生してもコードが正しく表示される場合は、エラーが.NET1.1 / WSSv2のみであり、.NET2/WSSv3で正常にコンパイルされている可能性があります。[出力]タブをチェックして、エラーが発生したターゲットを確認します
また、MSBUILDを使用して、1ステップのビルドプロセスを維持し、正気を保つために、MSBUILD忍者の動きをマスターする必要がありますhttp://brennan.offwhite.net/blog/2006/11/30/7-steps-to-msbuild/コマンドラインに頼ることなく、VSに両方のバージョンを同時にコンパイルさせることができます。
これにより、.NETが終了した後に.NET1.1コンパイルが実行され、エラーが発生した場所を特定するのに役立ついくつかのメッセージが[出力]ウィンドウに出力されます。
<Target Name="BeforeBuild">
<Message Text="--- Building for .NET 1.1 ---" Importance="high" Condition="'$(TargetFX1_1)'=='true'" />
<Message Text="--- Building for .NET 2.0 ---" Importance="high" Condition="'$(TargetFX1_1)'!='true'" />
</Target>
<Target Name="AfterBuild" Condition="'$(TargetFX1_1)'!='true'">
<MSBuild Projects="$(MSBuildProjectFile)" Properties="TargetFX1_1=true;" />
</Target>