Hi, On Fri, Mar 26, 2010 at 11:01 AM, Christopher Brandt <xtopher.bra...@gmail.com> wrote: > I've found one more problem and solution to it but also have a puzzling > situation. > > First the problem; on our build server we're running NAnt 0.86 and I'm > trying to get things working with the net-3.5 target framework. One build > was failing with an error: > > Unexpected attribute "if" on element <directory>. > > It took a while but I traced this to the nant.exe.config file. In the > net-3.5 section, the tool-paths element has a set of directory elements and > the first one (for the sdkInstall directory) has an 'if' attribute to guard > against the possibility that and sdkInstallRoot was not found. This if > attribute seems to work fine in the 0.90 build but not in 0.86. The solution > is to remove that 'if' element as it is not there in the net-2.0 or net-1.1 > sections. > > Now the puzzle. On my build server we're running Windows SDK v6.0 and .Net > Framework 3.5 32 bit, when I attempt to build with NAnt 0.90 I get an error > complaining that AL.exe could not be started because the ALink.dll could not > be found. On that server, the sdkInstallRoot\bin directory contains Al.exe > but not ALink.dll. The installRoot\v3.5 has neither but > installRoot\V2.0.50727 has both. So on that server it seems like NAnt 0.90 > is looking only in the first path and not the others.
I should have caught this before. Windows SDK v6.0 is for .NET 3.0. Not 3.5. I bet that if SDK v6.1 or v7.0 is installed in that machine, it would work properly. In the meantime, I should remove the SDK v6.0 reference from NAnt.exe.config since it is not for net-3.5 and I don't think NAnt officially supports .NET 3.0. > > The plot thinkens... > > On my desktop I'm running NAnt 0.90 with Windows 7.0 SDK and .Net Framework > 3.5 64 bit. In this set up I can successfully run the same build that fails > on our build server. Here the sdkInstallRoot\bin directory contains AL.exe > but not ALink.dll. The installRoot\v3.5 contains neither and > installRoot\v2.0.50727 only contains ALink.dll. So on my desktop, where > AL.exe and ALink.dll are not in the same folder NAnt 0.90 seems to be able > to find both. > > What am I missing? If I understand how this works correctly, NAnt is using al.exe and alink.dll from the .NET 2.0. The way that .NET 3.5 is setup is that it is a collection of libraries that sits on top of .NET 2.0. Since the NAnt.exe.config file uses the .NET 2.0 for the 3.5 framework assembly directory, I can only assume that NAnt is going using the files in the .NET 2.0 directory. If someone can better explain this, please chime in... > > --- > Chris. > > Continuous improvement is better than delayed perfection. - Mark Twain > > ------------------------------------------------------------------------------ > Download Intel® Parallel Studio Eval > Try the new software tools for yourself. Speed compiling, find bugs > proactively, and fine-tune applications for parallel performance. > See why Intel Parallel Studio got high marks during beta. > http://p.sf.net/sfu/intel-sw-dev > _______________________________________________ > NAnt-users mailing list > NAnt-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/nant-users > > -- Thanks, Ryan ------------------------------------------------------------------------------ Download Intel® Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev _______________________________________________ NAnt-users mailing list NAnt-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nant-users