Issues with No Touch Deployment Under Windows 7 64-bit Workstation for a .NET 3.5 x86 Windows Forms Application : Clean Up Old DLLs RRS feed

  • Question

  • We have a 10 year old Windows Forms .NET Application that is now developed under Visual Studio 2008 targeted at Any CPU Platform / .NET 3.5 Framework and running under Windows XP 32-bit.

    We currently use No Touch Deployment and are not in the position currently to move to ClickOnce Deployment due to resource constraints. We are stuck with using No Touch Deployment for now.

    Aside from No Touch Deployment for the main .EXE, the application also uses Reflection (Assembly.LoadFrom(path)) to download individual Screen Controls and Entities DLLs from the server.

    (As an aside, it also uses old technology .NET Remoting (again, no resources to convert to WCF yet) to connect to the backend server.)

    Under Windows XP, we have encountered no known issues with No Touch deployment: i.e. we did not have to clear the User Local Settings Application Data Assembly and Temporary Internet Files folders.

    We use an http link to the server to download (via No Touch Deployment) the application:



    This then triggers the local IE Execute Shell (IEEXEC.EXE) to process this request.

    All good so far.

    Now, we are in the process of moving to Windows 7 64 bit.

    Since we reference 32 bit Assemblies, we changed our target platform to x86 (32 bit).

    Because of this, we had to use CORFLAGS utility against the IEEXEC.EXE to create a 32-bit version.

    We now call the new 32-bit version of IEEXEC.EXE through a batch file to launch the application:

    START C:\NEW_IEEXEC\IEEXEC.EXE http://<server>/<folder>/<app.exe>

    The application launches correctly the first time we deploy to the server using No Touch Deployment.

    However, when new versions of the .EXE or the Screen Controls (see above) are copied to the deployment server folder, the correct .EXE / .DLL versions don’t always get executed. (However, under Windows XP, this is not the case).

    We ended up calling the following commands at System Startup in order to clean up the Assemblies and Temporary Internet folders in our testing.

    Taskkill /F /IM ieexec.exe

    RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 255

    erase /F /Q /S "C:\Documents and Settings\%USERNAME%\Local Settings\Application Data\assembly\dl3"

    erase /F /Q /S /A "C:\Documents and Settings\%USERNAME%\Local Settings\Temporary Internet Files\Content.IE5"

    erase /F /Q /S /A "c:\Users\%USERNAME%\AppData\Local\Microsoft\Windows\Temporary Internet Files\Low\Content.IE5"

    erase /F /Q /S /A "C:\Users\%USERNAME%\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.IE5"

    erase /F /Q /S /A "C:\Temp\*"

    This ensures the correct DLLs and .EXE are referenced correctly after initial login of the User.

    However, the company thinks this is a bit aggressive.

    Is there a better way to do this? Is this a known issue with a known fix?

    Hope you can help.

    Friday, October 18, 2013 4:58 AM


  • Hi onhello,

    I'm not so familar with no touch deployment since it seems like a old technology. But I have some advice which I hope can help you.

    1. When you use no touch deployment, have you created any logs to share details for your deployment? If there is a log file, you may be able to find some reason.

    2. You may need to try strong naming (ie use the 'sn' tool), which will allow you to version your application's dll's.


    Barry Wang
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    Monday, October 21, 2013 9:22 AM