Bugs item #1985576, was opened at 2008-06-05 18:10
Message generated for change (Comment added) made by maliger
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>
----------------------------------------------------------------------
Comment By: Martin Aliger (maliger)
Date: 2008-06-06 09:23
Message:
Logged In: YES
user_id=655297
Originator: NO
Tom,
thanks for patches you supplied. I'll look into this stuff.
Unfortunatelly binding redirects seems to be only way how to support both
msbuild2.0 and msbuild 3.5, but we would like to switch between them
dynamically (so you can choose which one to use in solution task).
----------------------------------------------------------------------
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