So spucke ich .NET 1.1-Versionen aus, die gegen WSSv2-API kompiliert wurden, und .NET 2.0, das gegen WSSv3-Assembly kompiliert wurde. Es wird für VS 2005 und 2008 funktionieren.
Sie müssen MSBEE verwenden http://www.codeplex.com/Wiki/View.aspx?ProjectName=MSBee
Arbeiten mit .NET 1.1 mit Visual Studio 2008
Einige Tipps
Öffnen Sie *.csproj und finden Sie heraus, wo die SharePoint dll referenziert wird, und ändern Sie die referenzierte Assembly je nach Ziel (FX1_1 bedeutet, dass Sie auf .NET1.1 und somit auf WSSv2 abzielen) wie folgt
<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>
Gegebenenfalls bedingte Kompilierung für Unterschiede verwenden
#if FX1_1
// WSSv2 specific code
#else
// WSSv3 specific code
#endif
Wenn Sie einen Compiler-Fehler erhalten, aber der Code richtig aussieht, kann es sein, dass der Fehler nur für .NET1.1 / WSSv2 auftritt und sich in .NET2/WSSv3 gut kompilieren lässt. Prüfen Sie die Registerkarte "Ausgabe", um zu sehen, für welches Ziel der Fehler aufgetreten ist
Sie müssen auch einige MSBUILD-Ninja-Moves beherrschen, um einen 1-Schritt-Build-Prozess einzuhalten und sich selbst bei Verstand zu halten http://brennan.offwhite.net/blog/2006/11/30/7-steps-to-msbuild/ Mit MSBUILD können Sie VS dazu bringen, beide Versionen gleichzeitig zu kompilieren, ohne auf die Befehlszeile zurückgreifen zu müssen.
Dies führt die .NET1.1-Kompilierung aus, nachdem .NET beendet ist, und gibt einige Meldungen im Ausgabefenster aus, um Ihnen zu helfen, die Fehler zu finden.
<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>