>>>>>Hi
>>>>>
>>>>>I'm creating a console app to pgp decrypt some files.
>>>>>
>>>>>This works but when I try and rename the second (and last) file that is decrypted I get an error file in use message.
>>>>>
>>>>>This is the code before I try and rename the file
>>>>>
>>>>>
>>>>>if (fileexists)
>>>>> {
>>>>>
>>>>> PGPDecrypt CES_ConCurDecrypt = new PGPDecrypt(CES_PGPEncryptedFile,
>>>>> @PGPPrivateKeyFile,
>>>>> PGPPassword,
>>>>> @PGPOutPutPath,
>>>>> @PGPPublicKeyFile);
>>>>>
>>>>> FileStream CES_fs = File.Open(CES_PGPEncryptedFile, FileMode.Open);
>>>>>
>>>>> CES_ConCurDecrypt.decrypt(CES_fs, @PGPOutPutPath);
>>>>>
>>>>> CES_fs.Close();
>>>>>
>>>>> }
>>>>>
>>>>>
>>>>>How can I tell what has the output file still open .
>>>>>
>>>>>Thanks
>>>>>
>>>>>Update
>>>>>
>>>>> I solved my problem by add a stream.dispose() in the decryption routine but I'd still like to know in Visual Studio how can I tell what still had the file open ?
>>>>
>>>>I think you can only do it thru code (and only find the process responsible) :
http://stackoverflow.com/questions/860656/using-c-how-does-one-figure-out-what-process-locked-a-file>>>>
>>>>BTW - best practice is to use "using (stream.......)" which will take care of the dispose() for you (even if there's an exception in the block).
>>>
>>>Thanks Viv. At the moment I'm dealing with a pointy headed person who might not let the bouncycastle dll onto his server.
>>
>>
>>Incorporate all dlls in your main.exe- he won't see anything
>
>When you build visual studio process how do you do that ?
Easy part: message #
1584686 or
http://www.codeproject.com/Articles/528178/Load-DLL-From-Embedded-Resourcemore interesting is to modify your project file ( of the exe ) so that it only 'embeds' on the build server
Gregory