views:

351

answers:

7

The .NET security model throws security errors whenever a .NET exe is run from a file share. The error does not appear when ran from a local drive. Does anyone know of a way around this without requiring the code to be signed?

+1  A: 

To get around this we ended up wrapping our .exe in a batch file. The batch file copied the .exe to the local drive and ran it from there. I'm sure there is a less hacky way though!

20th Century Boy
+2  A: 

Use caspol.exe to assign that file share enough permissions to run your program.

Joel Lucsy
+2  A: 

You might be able to build the application against .net 3.5 sp1 this version was removing this security setting.

Aaron Fischer
A: 

You can use the .Net configuration wizard to loosen security for the specific Assembly and it's location, this in turn can be deployed through a group policy. You can also use caspol as earlier mentioned.

The other alternative is to use code access security. There is a brilliant MSDN article here explaining it.

The third alternative is using clickonce deployment, however this still creates a local instance of the assembly when executed.

Diago
For .NET 2.0 the configuration wizard is part of Visual Studio and can be found at "c:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\mscorcfg.msc"
Wim Coenen
+1  A: 

Make sure that .Net 3.5SP1 is installed on the machine which is running the software. This version removes the security restriction on apps running from a file share. It allows them to run at full trust vs. the previous model which put them in a restricted environment.

Here's a link to Vance's blog article on the subject

JaredPar
A: 

You can use Click Once deployment to deploy your application from a file share.

JP Alioto