Rick G. Garibay wrote:
All,
I am a complete moron.
On my build server, I do nightly NANT builds and then
stable builds at each release milestone and then on
demand there forward.
My build server hosts the latest binaries from the
nightly so that the dev team has access to the latest
binaries. Cool right?
Not as cool as it should be.
In addition to the problem you've spotted, there's another: If someone
breaks a .dll, all of the developers feel the pain. You shouldn't make
the .dlls available to the developers until after the tests have been
run, which means there's no way to set things up so that developers run
right out of the build's directory.
Instead, after the tests pass, copy the .dlls to a publishing directory,
which is the one that they should use. You might still run into locking
problems at publishing time, but at least you're still able to compile
and test.
Gary
This works great as project references can be made to
latest nightly build right off the build share. But,
what happens when you try to build and developers have
left a reference open, locking the assembly?
You guessed it: "The process cannot access the file
because it is being used by another process.".
So, the solution is to do the following in my batch
script that kicks off the NANT build:
1. Stop the share on the builds directory using NET
SHARE /DELETE
2. Run my NANT build(s)
3. Re-enable the share using NET SHARE
Thanks to all for responding and I hope this helps
others if you encounter this issue.
Rick
--- Giscard Biamby <[EMAIL PROTECTED]> wrote:
It doesn't matter which location you copy to, as
long as
you adjust your <include>'s to reflect those new
locations
for each <csc> block.
I would do /Bin .
Hope it works for you, let us know.
--- "Rick G. Garibay" <[EMAIL PROTECTED]> wrote:
Thank you. I will try this and report back. One
question, do I copy them local to the source or to
the
ouput /Bin directory?
In the interim, are there any other best practices
I
should be following?
--- Giscard Biamby <[EMAIL PROTECTED]> wrote:
Have you tried using <exec> with vs.net IDE to
build
instead of <csc>?
Another thing to try is this: Before building
each
assembly, copy it's dependencies locally.
i.e. build Common, copy it to local folder for
the
Accounting project, build Accounting having it
reference
it's own copy of Common. Then copy Common and
Accounting to
Operations' folder and build Operations, etc.
See if
that
works.
--- "Rick G. Garibay" <[EMAIL PROTECTED]>
wrote:
I agree. This may not be an issue with the SNK
file at
all because I added a copy task to copy the
SNK
file
to the bin/release file and changed the
AssemblyKeyFile path to "DriveTime.snk" and
the
path
resolves but I still am getting the following
error
randomly:
[csc] error CS1606: Assembly signing failed;
output
may not be signed -- The process cannot access
the
file because it is being used by another
process.
I am building assemblies that rely on
previously
built
assemblies.
For example Common is built and Accounting
relies
on
Common. Once Accounting is built, Operations
relies on
it, etc, etc.
I even tried putting the build to sleep for up
to
30
seconds between builds to no avail.
Any tips greatly appreciated. Please reply to
myself
as well as nant-users@lists.sourceforge.net so
that
the entire list may benefit from your
response.
Thanks,
Rick
--- Giscard Biamby <[EMAIL PROTECTED]> wrote:
Looking at the error message it seems that
it
has
trouble
accessing the assembly, not the .snk file...
--- "Rick G. Garibay"
<[EMAIL PROTECTED]>
wrote:
I have a nested build that runs nightly.
Very
frequently lately, the build fails,
randomly.
The
failure appears to be due to a locking
issue
with
the
snk file that is used to strongly name
each
output
assembly.
I have the snk file on the build server in
the
following location C:\Temp\.
When the build fails, the following error
message
occurs: The process cannot access the file
because
it
is being used by another process.
Is this an SNK file locking issue? Does
anyone
have a
workaround to get around the issue?
Many thanks,
Rick
Below is the log output.
[echo] Attempting to clean
C:\VSS\Projects\VIMMS
- Phase I
[delete] Deleting directory
'C:\VSS\Projects\VIMMS
- Phase I'.
[delete] Cannot delete directory
'C:\VSS\Projects\VIMMS - Phase I'. The
process
cannot
access the file "C:\VSS\Projects\VIMMS -
Phase
I"
because it is being used by another
process.
[echo] Cleaning C:\VSS\Projects\VIMMS
-
Phase
I
[echo] Clean successful!
build:
[nant] D:\NANT\Nightly\VIMMS - Phase
I\BusinessEntities.Common.build
Buildfile:
file:///D:/NANT/Nightly/VIMMS -
Phase I/BusinessEntities.Common.build
Target framework: Microsoft
.NET
Framework
2.0
Base Directory:
D:\NANT\Nightly\VIMMS
-
Phase I.
[vssget] Getting
'$/Projects/VIMMS
-
Phase I/BusinessEntities.Common/Code' to
'C:\VSS\Projects\VIMMS - Phase I'...
D:\NANT\Nightly\VIMMS - Phase
I\BusinessEntities.Common.build(34,5):
Element
<includes... /> for <fileset... /> is
deprecated.
Use
<include> element instead.
[csc] Compiling 8 files
to
'D:\Builds\DriveTime\BusinessEntities.Common\Bin\Debug\DriveTime.BusinessEntities.Common.dll'."
[csc]
c:\VSS\Projects\VIMMS
-
Phase
I\BusinessEntities.Common\DriveTime.BusinessEntities.Common\AssemblyInfo.cs(30,12):
warning CS1699: Use command line option
'/keyfile'
or
appropriate project settings instead of
'AssemblyKeyFile'
BUILD SUCCEEDED
[nant] D:\NANT\Nightly\VIMMS - Phase
I\BusinessEntities.Operations.build
Buildfile:
file:///D:/NANT/Nightly/VIMMS -
Phase I/BusinessEntities.Operations.build
Target framework: Microsoft
.NET
Framework
2.0
Base Directory:
D:\NANT\Nightly\VIMMS
-
Phase I.
[vssget] Getting
'$/Projects/VIMMS
-
Phase I/BusinessEntities.Operations/Code'
to
'C:\VSS\Projects\VIMMS - Phase I'...
D:\NANT\Nightly\VIMMS - Phase
I\BusinessEntities.Operations.build(45,5):
Element
<includes... /> for <assemblyfileset... />
is
deprecated. Use <include> element instead.
D:\NANT\Nightly\VIMMS - Phase
I\BusinessEntities.Operations.build(42,5):
Element
<includes... /> for <fileset... /> is
=== message truncated ===
"Few are those who see with their own eyes and feel
with their own hearts." -Albert Einstein
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam
protection around
http://mail.yahoo.com
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
NAnt-users mailing list
NAnt-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nant-users
-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
NAnt-users mailing list
NAnt-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nant-users