Bugs item #1985576, was opened at 2008-06-05 16:10
Message generated for change (Tracker Item Submitted) made by Item Submitter
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=402868&aid=1985576&group_id=31650
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Framework support
Group: 0.86
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: tomthorne (tomthorne)
Assigned to: Nobody/Anonymous (nobody)
Summary: solution task (via MSBuildProject) cannot build 2008 csproj
Initial Comment:
0.86-beta 1
(1) Msbuild engine 3.5 not backwards compatible with msbuild 2.0 due to
$(MSBuildToolsPath) used instead of $(MSBuildBinPath)
(2) VS2008 uses MSBuildToolsPath in its projects, so want to support msbuild 3.5
(3) NAnt shipped with MSBuildProject built against msbuild 2.0
(4) cannot just use a binding redirect since msbuild 3.5 has changed the name
of 1 of the assemblies (Microsoft.Build.Utilities.v3.5.dll)
My workaround:
1. edit NAnt.MSBuild.build task to build a 3.5 specific version referencing
Microsoft.Build 3.5
2. fix Nant.Console App.config
- correct ref assemblies from Microsoft.Build.Utilities.dll to
Microsoft.Build.Utilities.v3.5.dll
- correct scan paths from 2.0 to 3.5
- add suppoted runtime
- added binding redirect so that don't get GetWinFXPath error
Patches are here:
App.config
384c384
< <include name="Microsoft.Build.Utilities.dll" />
---
> <!-- include name="Microsoft.Build.Utilities.dll" /-->
417a418
> <include name="Microsoft.Build.Utilities.v3.5.dll" />
449,450c450
< <!-- include MS.NET 2.0 specific assemblies -->
< <include name="extensions/net/2.0/**/*.dll" />
---
> <include name="extensions/net/3.5/**/*.dll" />
455,456c455
< <!-- include .NET 2.0 specific assemblies -->
< <include name="extensions/common/2.0/**/*.dll" />
---
> <include name="extensions/common/3.5/**/*.dll" />
1907a1907,1914
>
> <dependentAssembly>
> <assemblyIdentity name="Microsoft.Build.Framework"
> publicKeyToken="b03f5f7f11d50a3a"
> culture="neutral" />
> <bindingRedirect oldVersion="2.0.0.0"
> newVersion="3.5.0.0"/>
> </dependentAssembly>
1908a1916
>
1911c1919
< <!-- .NET Framework 2.0 -->
---
> <supportedRuntime version="v3.5.21022" />
NAnt.MSBuild.build
1c1
< <?xml version="1.0"?>
---
> <?xml version="1.0"?>
10c10
< <target name="build" if="${framework::exists('net-2.0') or
framework::exists('mono-2.0') or framework::exists('net-3.5') }">
---
> <target name="build" if="${framework::exists('net-2.0') or
> framework::exists('mono-2.0')}">
14,46d13
<
< <if test="${framework::exists('net-3.5')}">
< <!-- modify target framework to .NET 2.0 -->
< <property name="nant.settings.currentframework" value="net-3.5" />
<
< <mkdir dir="${build.dir}/bin/extensions/common/3.5" />
<
< <!-- build main assembly -->
< <csc verbose="true" target="library"
define="${current.build.defines}" warnaserror="${build.warnaserror}"
debug="${build.debug}"
output="${build.dir}/bin/extensions/common/3.5/${project::get-name()}.dll"
doc="${build.dir}/bin/extensions/common/3.5/${project::get-name()}.xml">
< <sources>
< <include name="**/*.cs" />
< <!-- common assembly-level attributes -->
< <include name="../CommonAssemblyInfo.cs" />
< </sources>
< <references>
< <include name="Microsoft.Build.Engine.dll" />
< <include name="Microsoft.Build.Framework.dll" />
< <include name="Microsoft.Build.Utilities.v3.5.dll" />
< <include name="${build.dir}/bin/NAnt.Core.dll" />
< <include name="${build.dir}/bin/NAnt.DotNetTasks.dll" />
< <include name="${build.dir}/bin/NAnt.VSNetTasks.dll" />
< </references>
< <resources prefix="NAnt.MSBuild" dynamicprefix="true">
< <include name="Resources/**/*" />
< </resources>
< </csc>
<
< </if>
<
<
<
< <if test="${framework::exists('net-3.5') == false }">
<
57,58d23
<
<
81d45
< </if>
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=402868&aid=1985576&group_id=31650
-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
nant-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/nant-developers