Software Update Requires GAC Updates On Client PCs; How?

  • Thread starter Thread starter mstjean
  • Start date Start date
M

mstjean

Beginning to look at the mechanics of deployment at our site for our
new project, our first in .NET. Management insists all apps will run
from the network, not from desktops and we've managed to figure that
out; Application exe files will each reside in their own network
folders under N:\NETAPPS, and the strongly named assemblies which are
referenced in the GAC are *ALL* located in a single folder,
N:\ASSEMBLIES.

When there are updates or emergency fixes to be done under this
implementation, the new program file will be copied to it's folder,
the new assembly/ies will be copied to the assemblies folder, then the
users will re-login-- their GACs will be updated to point to the
newest assemblies that are on the network, in N:\ASSEMBLIES.

This is where I've hit a snag. I thought I understood that GACUTIL has
to run with ADMINISTRATOR rights. I also thought that while the user's
network login script (.bat OR vbscript) was running, it had elevated
rights... I am apparently wrong on the second assumption.


SO, LET ME ASK AND OBSERVE...
* You *DO* have to be administrator to run GACUTIL....right????
* I do not want to make the user a local administrator
* I would rather NOT give the user full rights to \windows\assembly
(considering as a fallback if it works though)
* I cannot override the bosses re 'run apps from the net'
* We will have lots of shared assemblies, so doing a standard install
would be inefficient, especially for updates/patches (I think)
-besides, that would not be able to update GAC either unless
run as admin, right?

Am I flat out going about this the wrong way??? I think the approach
is sound; when we need to update we would just copy the newest code up
the the network locations-- and *as long as* the users can update
their GACs when logging in, I don't see a problem...


========


'Code snippet from a login vbscript, that I hoped I could use to
update the GAC for users during login... but does NOT succeed (it
would it the user had admin rights of course)


Gacline = "AssemblyName" 'for example

UU = "%WINDIR%\Microsoft.NET\Framework\v1.0.3705\gacutil /U " +
GacLine
II = "%WINDIR%\Microsoft.NET\Framework\v1.0.3705\gacutil /I
N:\ASSEMBLIES\" + GacLine + ".DLL"

Shell.run UU 'out with the old
Shell.run II 'and in with the new
 
I'm wondering if you could use a publisher policy file in the GAC to avoid
using the GAC for the assemblies, redirecting to some folder on the client
system.

Note that the only reason you have gacutil.exe on the client system is that
it appeared with SP2 to the 1.0 framework. The 1.1 framework on my XP Pro
box does not have gacutil installed in the 1.1.4322 folder.
 
Back
Top