Creating LabVIEW Executable for sub-20 Multi Interface USB Adapter

Hi
I'm using Sub-20 Multi Interface USB Adapter (www.xdimax.com) for GPIO and SPI. The code is based on .NET constructor Node. I can access the device and perform all the tasks but I'm unable to generate executable.
The application comes up with this error (on any machine including the development machine)
"This VI is not executable. The Full development version of LabVIEW is required to fix errors"
I'm using labVIEW 8.2 and .NET Framework 4 is also installed.
Thanks

Hi AA76,
That is good to know, at least we know the cause of the error.  The KB - How LabVIEW Locates .NET Assemblies shows the LabVIEW search directories.  I suspect what is probably happening in this case is the relative path.  If the system is looking for the same relative path this is probably different. You say that even on the development machine the .exe does not load the library.  Is this when you have just created the .exe or after running the installer?  If it is after running the installer what about before you build the installer?
Finally where is the assembly located?
Regards,
James
James Mc
========
CLA and cRIO Fanatic
wiresmithtech.com/blog

Similar Messages

  • How do I create an executable for a computer that does not have IVI drivers

    I'm creating an executable driver (based on the NI drivers) for a TDS 3054 intended for a computer that does not have the IVI engine. I would prefer to install as little software on this computer as possible. Is it possible for me to build the driver with the appropriate support DLL's without installing IVI on the user's computer? How do I do this?
    Thank you,
    Zach Oberman

    Zach,
    Since the tkds30xx driver you are using is IVI based, you will not be able to use it without the IVI Engine.
    If you must build an executable that does not require the IVI Engine, then you will need to use a traditional LabVIEW driver or convert a VXIpnp driver into LabVIEW. Neither of those drivers would require the IVI Engine.
    At this time the only TDS 3054 driver on NI's IDNet website is the IVI-based tkds30xx driver.
    You may be able to obtain a traditional LabVIEW driver from
    Tektronix
    Developer Exchange
    Requesting a
    driver
    Other Resources
    Thanks,
    --Bankim

  • How to create Single Queue for more than one interfaces(XI)

    Hi Experts,
    I want to set up a separate queue for 3 interfaces which all are outbound IDOC to FTP.
    Please let me know ' Hhow to create a queue for multiple interfaces with Quality of Service 'EO''.
    Thanks,
    Srinivas P.

    The same reason that Apple and 3rd Party vendors put multi-size templates in one file I expect. I am trying to construct an in-house standard template for use in our company, and it is easier to manage if there is only one file to send to people rather than many - both initially and for subsequent edits / updates to the template.
    Of course it would be possible to create several templates (one for each size). But since it is clear that templates can be combined, it appears sensible to do this - unless the doing of it is horridly complicated

  • Create an executable for a RT project

    Hi all, I am not sure on how to create an executable of a real-time VI. I have read about using source distributions but I have not yet used it. Can you send me some suggestions about this?
    Regards,
    Claudio

    Yes you are able to do what you explained above by programmatically launching the executable or vi on your Real - Time Controller.
    At start, you just have to create a source distribution (right click on Build Specifications--->New---> Source Distribution)--- instead of creating an application (right click ---> New ---> Real Time Application). In this way Labview creates a folder in which there are contained the main vi and all it's dependencies (subVI's, libraries).
    Then, you have to transfer through File Transfer Protocol (FTP) this folder to your RT Target. 
    After you made these steps, by using an Open Application Reference VI and  Open VI Reference VI on the Block Diagram, you are able to set the RT Controller Name or IP of RT target, as well as the location of the top level vi in your RT target. 
    Finally, you can use an Invoke Node or a Call By Reference Node to run the remote VI.
    You can find very little detail and images of the description above in the link below:
    http://digital.ni.com/public.nsf/allkb/A7DBA869C000B5AE862570B2007C4170?OpenDocument
    You can also check the example in Labview  Example Finder " Vi Server.lvproj" that basically does all the above and I am sure it will help you.
    Does this work for you? Let me know!!
    Best regards,
    Antonios

  • Creating Labview VI for Newport's ESP6000 motion controller

    I am working on creating a Labview VI for ESP6000 motion controller (Newport). I want to move to stages independently one by one and acquire synchronized data from the analog input of the controller during the motion of the one of the stages. If there is anyone working with Labview on ESP6000, I will be glad to dicsuss common issues, obstacles, sub vi's etc.
    ceyhun

    We built a test station for an automotive component with the ESP6000. The biggest limitation we ran into was the 1000-sample buffer capacity of the analog input. We were hoping that it would behave like the NI DAQ boards. It was not our choice to use the ESP6000. The customer supplied it. The whole setup cost in excess of $9,000. The NI equivalent would be about 2/3 that much. Anyway, Newport supplies a driver that does work. It takes some work to get everything going properly though.
    Remember that Alliance Members are here to help. We do this stuff every day.
    Daniel L. Press
    PrimeTest Corp.
    www.primetest.com

  • Creating LabVIEW executables & installers

    Hello all,
    I am trying to create an executable & installer for an application as described in http://zone.ni.com/devzone/cda/tut/p/id/5406. I am having issues with both. I'd appreciate some pointers.
    1. EXE: I have attached a zip folder here called "exe screen shots 1" with screen shots of the error. The errors is related to the HWS drivers on the target machine. The application runs fine on the host computer. I have installed the 821 run time engine from ni.com on the target. I have also tried placing the instr.lib/nihws.llb at the same location as host machine but to no avail. Is there a specific place for lvrt.dll?
    2. Installer: Screenshots of the build errors are attached. Message indicates a "Windows SDK Function" returned an error. The installer build never completes. The path for HSDIO and Runtime engine are valid.
    Thanks,
    -Ram. 
    Solved!
    Go to Solution.
    Attachments:
    Installer errror log.zip ‏182 KB
    exe error shots1.zip ‏148 KB

    Hello Ram,
    regarding your need to install NI HWS on the target computer.
    NI HWS is distributed with NI-HSDIO, but also supports a feature in LabVIEW, which allows you to create a custom, application specific installer distribution. This feature is accessable from the LabVIEW project build specification when creating application specific installers.
    To do this 'right click' on 'Build Specifications', and select New>>Installer. Under 'Category' select 'Additional Installers', you already find the LabVIEW Run-Time Engine selected. Additionally select 'NI Hierachical Waveform Storage'.
    Using these steps, I created a custom installer of ~300MB, which should install all the required NI HWS binaries as well as the LabVIEW 8.2.1 Run-Time Engine onto your target computer.
    Regards,
    Marian

  • How to create an handle for Miniport driver Ioctl interface?

    Hi All,
    I am trying to create an handle for my miniport driver Ioctl interface, but it showing the following error while opening the handle with CreateFile API.
    "you are requesting IOCTL_HAL_GET_DEVICE_INFO::SPI_GETPLATFORMTYPE,
    which has been deprecated. Use IOCTL_HAL_GET_DEVICE_INFO::SPI_GETPLATFORMNAME
    instead"
    Can anyone suggest on how to create the handle for Miniport Ioctl interface?
    Thank you,
    Sagar

    Hi,
    I have seen this error only in GUI based apps. Maybe you are pointing to the wrong error.
    Check if CreateFile returns INVALID_HANDLE_VALUE. API return value should give you more information.
    Regards,
    Balaji.

  • How to create an executable for Windows or Unix

    Hi,
    I would like to know how to do to create an executable, an application which is able to work under windows for exemple without installing a JVM ?
    (When you download a program which was writing in java on internet it is an executable. You don't need a JVM on your system to run it. I would like to do the same thing...)
    thanks

    Hi C,
    I think they use JToExe.exe to compile the java project but I think they need a JVM to run the application. I just wanted to know if it is possible to run an application without JVM after any compilation. When we find an executable, most of the time is it a Visual project ? (in c or other langage ?) I will work later for a company which develop a new application in Java. To put it on the market they need to do an executable.
    Thanks for your time

  • IllegalAccessError when trying to create a proxy for a non-public interface

    My code proxies a class that extends JDialog. Under Java5 this works fine. However when I switch to Java6 I get a java.lang.IllegalAccessError: class javax.swing.$Proxy3 cannot access its superinterface javax.swing.TransferHandler$HasGetTransferHandler exception.
    I went through debugging my code to find out what went wrong. I created the included test code that shows the problem (and because the real codebase is much too big to include here).
    package javax.swing;
    public class SomePackageInterfaceDefiningClass {
        interface SomeInnerPackageInterface {
    package javax.swing;
    import java.lang.reflect.Proxy;
    import java.util.ArrayList;
    import java.util.Collection;
    import org.apache.commons.lang.ArrayUtils;
    public class NonPublicInterfaceProxyCreator {
        public static void main(String[] args) {
            // This works fine !
            doTest(WindowConstants.class);
            // This also ! The proxy class package is javax.swing as expected
            doTest(SomePackageInterfaceDefiningClass.SomeInnerPackageInterface.class);
            // JDialog implements the package visible interface
            // javax.swing.TransferHandler.HasGetTransferHandler
            Collection<Class<?>> jdInterfaces = new ArrayList<Class<?>>();
            for (Class<?> interfaze : JDialog.class.getInterfaces()) {
                jdInterfaces.add(interfaze);
            Collection<Class<?>> strippedJdialogInterfaces = new ArrayList<Class<?>>(
                    jdInterfaces);
            for (Class<?> interfaze : jdInterfaces) {
                if (interfaze.getName().equalsIgnoreCase(
                        "javax.swing.TransferHandler$HasGetTransferHandler")) {
                    strippedJdialogInterfaces.remove(interfaze);
            // Without the package visible interface it works !
            doTest(strippedJdialogInterfaces.toArray(new Class<?>[0]));
            // With the package visible interface it fails
            doTest(jdInterfaces.toArray(new Class<?>[0]));
        private static void doTest(Class... interfaces) {
            // Class clazz = Proxy.getProxyClass(JDialog.class.getClassLoader(),
            // interfaces);
            Class clazz = Proxy.getProxyClass(Thread.currentThread()
                    .getContextClassLoader(), interfaces);
            System.out.println("Class created = " + clazz
                    + " >>>> Implemented interfaces = "
                    + ArrayUtils.toString(clazz.getInterfaces()));
    }When I run this code under Java5 I get:
    Class created = class $Proxy0 >>>> Implemented interfaces = {interface javax.swing.WindowConstants}
    Class created = class javax.swing.$Proxy1 >>>> Implemented interfaces = {interface javax.swing.SomePackageInterfaceDefiningClass$SomeInnerPackageInterface}
    Class created = class $Proxy2 >>>> Implemented interfaces = {interface javax.swing.WindowConstants,interface javax.accessibility.Accessible,interface javax.swing.RootPaneContainer}
    Class created = class $Proxy2 >>>> Implemented interfaces = {interface javax.swing.WindowConstants,interface javax.accessibility.Accessible,interface javax.swing.RootPaneContainer}Under Java6 I get:
    Class created = class $Proxy0 >>>> Implemented interfaces = {interface javax.swing.WindowConstants}
    Class created = class javax.swing.$Proxy1 >>>> Implemented interfaces = {interface javax.swing.SomePackageInterfaceDefiningClass$SomeInnerPackageInterface}
    Class created = class $Proxy2 >>>> Implemented interfaces = {interface javax.swing.WindowConstants,interface javax.accessibility.Accessible,interface javax.swing.RootPaneContainer}
    Exception in thread "main" java.lang.IllegalAccessError: class javax.swing.$Proxy3 cannot access its superinterface javax.swing.TransferHandler$HasGetTransferHandler
         at java.lang.reflect.Proxy.defineClass0(Native Method)
         at java.lang.reflect.Proxy.getProxyClass(Proxy.java:504)
         at javax.swing.NonPublicInterfaceProxyCreator.doTest(NonPublicInterfaceProxyCreator.java:45)
         at javax.swing.NonPublicInterfaceProxyCreator.main(NonPublicInterfaceProxyCreator.java:38)According to the documentation the interface javax.swing.TransferHandler$HasGetTransferHandler should be visible to my class as it is located in the same package, right?
    I think there must be some classloading issue when trying to access the non-public interface javax.swing.TransferHandler$HasGetTransferHandler in rt.jar.
    I can not figure out what is different between my own non-public interface and Swing's javax.swing.TransferHandler$HasGetTransferHandler.
    Any help would be appreciated.

    I don't agree completely. What you're telling is true, don't get me wrong. It's the Error that I get from Java that troubles me.
    To resolve the classloading question, I changed my code as follows:
    package javax.swing;
    import java.lang.reflect.Proxy;
    import java.util.ArrayList;
    import java.util.Collection;
    import org.apache.commons.lang.ArrayUtils;
    public class NonPublicInterfaceProxyCreator {
        public static void main(String[] args) {
            // This works fine !
            doTest(WindowConstants.class);
            doTest2(WindowConstants.class);
            // This also ! The proxy class package is javax.swing as expected
            doTest(SomePackageInterfaceDefiningClass.SomeInnerPackageInterface.class);
            doTest2(SomePackageInterfaceDefiningClass.SomeInnerPackageInterface.class);
            // JDialog implements the package visible interface
            // javax.swing.TransferHandler.HasGetTransferHandler
            Collection<Class<?>> jdInterfaces = new ArrayList<Class<?>>();
            for (Class<?> interfaze : JDialog.class.getInterfaces()) {
                jdInterfaces.add(interfaze);
            Collection<Class<?>> strippedJdialogInterfaces = new ArrayList<Class<?>>(
                    jdInterfaces);
            for (Class<?> interfaze : jdInterfaces) {
                if (interfaze.getName().equalsIgnoreCase(
                        "javax.swing.TransferHandler$HasGetTransferHandler")) {
                    strippedJdialogInterfaces.remove(interfaze);
            // Without the package visible interface it works !
            doTest(strippedJdialogInterfaces.toArray(new Class<?>[0]));
            doTest2(strippedJdialogInterfaces.toArray(new Class<?>[0]));
            // With the package visible interface it fails
            doTest(jdInterfaces.toArray(new Class<?>[0]));
            doTest2(jdInterfaces.toArray(new Class<?>[0]));
        private static void doTest(Class... interfaces) {
            ClassLoader contextClassLoader = Thread.currentThread()
                    .getContextClassLoader();
            System.out.println("Classloader that creates proxy = " + contextClassLoader);
            try {
                Class clazz = Proxy.getProxyClass(contextClassLoader, interfaces);
                System.out.println("Class created = " + clazz
                        + " >>>> Implemented interfaces = "
                        + ArrayUtils.toString(clazz.getInterfaces()));
            } catch (Throwable e) {
                e.printStackTrace();
        private static void doTest2(Class... interfaces) {
            ClassLoader contextClassLoader = JDialog.class.getClassLoader();
            System.out.println("Classloader that creates proxy = " + contextClassLoader);
            try {
                Class clazz = Proxy.getProxyClass(contextClassLoader, interfaces);
                System.out.println("Class created = " + clazz
                        + " >>>> Implemented interfaces = "
                        + ArrayUtils.toString(clazz.getInterfaces()));
            } catch (Throwable e) {
                e.printStackTrace();
    }And here is the result when I run it on Java 1.6:
    Classloader that creates proxy = sun.misc.Launcher$AppClassLoader@11b86e7
    Class created = class $Proxy0 >>>> Implemented interfaces = {interface javax.swing.WindowConstants}
    Classloader that creates proxy = null
    Class created = class $Proxy1 >>>> Implemented interfaces = {interface javax.swing.WindowConstants}
    Classloader that creates proxy = sun.misc.Launcher$AppClassLoader@11b86e7
    Class created = class javax.swing.$Proxy2 >>>> Implemented interfaces = {interface javax.swing.SomePackageInterfaceDefiningClass$SomeInnerPackageInterface}
    Classloader that creates proxy = null
    java.lang.IllegalArgumentException: interface javax.swing.SomePackageInterfaceDefiningClass$SomeInnerPackageInterface is not visible from class loader
         at java.lang.reflect.Proxy.getProxyClass(Proxy.java:353)
         at javax.swing.NonPublicInterfaceProxyCreator.doTest2(NonPublicInterfaceProxyCreator.java:64)
         at javax.swing.NonPublicInterfaceProxyCreator.main(NonPublicInterfaceProxyCreator.java:18)
    Classloader that creates proxy = sun.misc.Launcher$AppClassLoader@11b86e7
    Class created = class $Proxy3 >>>> Implemented interfaces = {interface javax.swing.WindowConstants,interface javax.accessibility.Accessible,interface javax.swing.RootPaneContainer}
    Classloader that creates proxy = null
    Class created = class $Proxy4 >>>> Implemented interfaces = {interface javax.swing.WindowConstants,interface javax.accessibility.Accessible,interface javax.swing.RootPaneContainer}
    Classloader that creates proxy = sun.misc.Launcher$AppClassLoader@11b86e7
    java.lang.IllegalAccessError: class javax.swing.$Proxy5 cannot access its superinterface javax.swing.TransferHandler$HasGetTransferHandler
         at java.lang.reflect.Proxy.defineClass0(Native Method)
         at java.lang.reflect.Proxy.getProxyClass(Proxy.java:504)
         at javax.swing.NonPublicInterfaceProxyCreator.doTest(NonPublicInterfaceProxyCreator.java:51)
         at javax.swing.NonPublicInterfaceProxyCreator.main(NonPublicInterfaceProxyCreator.java:41)
    Classloader that creates proxy = null
    Class created = class javax.swing.$Proxy6 >>>> Implemented interfaces = {interface javax.swing.WindowConstants,interface javax.accessibility.Accessible,interface javax.swing.RootPaneContainer,interface javax.swing.TransferHandler$HasGetTransferHandler}As you can see, I get an IllegalArgumantException telling me that my interface I try to proxy is not visible for JDialog's classloader, as I would expect. Remark that Java tells me that JDialog's classloader is null. Strange, isn't is?
    However I get an IllegalAccessError when I try to proxy TransferHandler$HasGetTransferHandler from my own classloader.
    Any reason why the error is different?

  • How do I create an "executable" for users to run calcs?

    I need to create an executable that users can launch.  I would like it to 1) log in as a "test" user that I have set up in Native Directory, 2) select app/database then 3) launch a series of calcs.  I had something set up previously in an earlier version of Essbase but I can't get it to run on Essbase 11.
    Here's what I had previously:
    Login "servername" "TestUser" "Password" ;
    Select "App" DataBase;
    RunCalc 2 "Calc 1" ;
    RunCalc 2 "Calc 2" ;
    RunCalc 2 "Calc 3" ;
    Maybe the user's machines don't have all the files needed to run this?  It's just flashes and doesn't give me any messages.  I'm stumped.

    If you are using 11.1.2.1 you would need to set the execution based off the startESSCMD.bat/sh.  Here is an example.  Check that the startESSCMD script works first so you can get the command line up.
    Does startESSCMD work on the machine?
    @ECHO OFF
    REM --------------------------------------------------------------
    REM --                                 --
    REM --                        --
    REM --                                 --
    REM --                                 --   
    REM --------------------------------------------------------------
    @REM This file is created to use essmsh in batch
    @REM Set ESSBASEPATH to the setEssbaseEnv in your system
    call "C:\Oracle\Middleware\user_projects\epmsystem1\EssbaseServer\essbaseserver1\bin\setEssbaseEnv.bat"
    set PATH=%ESSBASEPATH%;%PATH%
    %ESSBASEPATH%\bin\esscmd.exe E:\Oracle\Backup\backup\scripts\script.msh

  • Creating web transaction for sub screen modulr pool

    Hi Experts,
    I am working with SRM . I have crated a module pool program which contains one main screen (9000) and two subscreens (9001, 9002 ). Also one subscreen area ( SUBSCR ). I have created two buttons in the main screen , button1 and button2. When I click on button one 9001 subscreen will appear in the subscreen area and when I press button 2,  9002 subscreen will appear in the subscreen area SUBSCR.  this transaction is working fine in R/3 system. I have created a service in SICF. I need to write the coding in template. I have never written HTML coding for this type of problem.
    Please give me the sample code for the above case.
    thanks in advance
    sankar

    Hello Sankar,
    If you already created this transaction and it works in the R/3 system then just follow the "Creating Internet Services" steps in the ITS help:
    http://help.sap.com/saphelp_nw2004s/helpdata/en/53/302068f84311d4969300a0c94260a5/frameset.htm
    Or you could do it manually:
    1. create a new service in SICF
    2. make sure the "GUI link" is yes
    3. the parameters need to have:
        ~generatedynpro 1
        ~transaction   Z<transaction code>
    4. Activate the service
    That is probably the simplest way, let the ITS dynamically create the HTML for you.
    Edgar

  • How to create AMDP's for sub stored procedures

    Hi,
    I am migrating Hana data base procedure to AMDP.
    I have HANA DP like below.
    procedure1.
       call procedure 2.
    endof procedure1.
    how to create AMDP in this case, i have created AMDP methods for both procedure1 and procedure2 but when i am calling AMDP of stored procedure2 in AMDP of stored procedure1  it's giving sqlscript syntax error since call method is an abap statement.
    can any one help me how to achieve this.
    Thanks
    Viswamurthy

    Dear Viswamurthy,
    You cannot use  CALL METHOD statements inside an AMDP Method as AMDP methods would not understand ABAP syntax.
    You need to use SQLScript CALL statements to call an AMDP method from an other AMDP method like below
    METHOD increase_price BY DATABASE PROCEDURE
                          FOR HDB LANGUAGE SQLSCRIPT
                          USING cl_demo_amdp_call_amdp=>increase_price_amdp.
      call "CL_DEMO_AMDP_CALL_AMDP=>INCREASE_PRICE_AMDP"(
        CLNT => :CLNT, INCPRICE => :INCPRICE );
    ENDMETHOD.
    You can find an example in the below link
    ABAP Keyword Documentation
    Hope this helps.
    Thanks
    Sundar

  • Creating LabView application for VME-GPIB device

    I am trying to learn how to create software for controlling GPIB devices attached to the VME-GPIB board. One application would be for a setup where Labview is the software used. Another is a real-time system developed with VxWorks.
    It seems to me, that in order to be able to create such a LabView application I need detailed information on the VME-GPIB VME memory layout and definitions of all of its registers. Am I right assuming that? Suppose that I am right, where can I get such detail information on the VME properties of the VME-GPIB device?
    I found such a document for the GPIB-1014 device, which seems to be a precursor to the VME-GPIB device.
    Am I correct assuming that such manual would also be essential for writing VxWorks software as well?
    Thanks in advance,
    Zen

    Zen,
    I have received your support email regarding this issue and currently working on getting you the needed information. I will contact you when it is ready.

  • Labview Executable with VISA functions in Run Time Engine

    Hi Everybody
    I designed a gui to communicate using VISA GPIB. I created an executable for the gui. I also installed LabView Run Time Engine on the desired machine. I recieved couple of errors, for which I copied the files visa32.dll, NIVISV32.dll and serpdrv to the folder with the executable.
    I recieved the following error, ' Initialization of NIVISV32.dll failed. The process interminating abnormally.'
    Are there any drivers I should install in addition to the Run Time Engine? If so, where can I find these drivers?
    Thank you
    Jackie

    I installed NI-VISA with similar version as my development installation, and LV runtime engine. Labview still crashed.
    I noticed certain library functions in full labview that is not present in the NI-VISA + LV run time directory, such as _visa.llb etc.
    Do I need to copy these additional library functions too? Will Run Time Engine read these library functions?

  • GR for sub contact P.O

    While creating G.R for sub contract P.O, when we I enter the G.R qty , the component consumption (Mov type 543) is taken as per BOM. But if I change the G.R qty, then the component qty is remaining same.(as entered for initial qty) & not changing as per changed G.R qty

    In subcontracting GR,BOM consumption will change only once after entering GR quantity.
    If you want to change GR quantity,close MIGO screen,reopen MIGO,enter purchase order no.,now enter GR quantity,
    see BOM Consumption of child components.

Maybe you are looking for

  • HP Scanjet G4050 won't scan negatives or individual pictures Windows 8.1

    I have posted recently, but I can't find it.  I have MANY times tried to download everything I can find for my scanjet and it won't work.  Then it said to uninstall completly and start again.  I cannot uninstall it completely.  Now there are drivers

  • Audio book download

    i have a 30gb colour ipod, i have downloaded a audio book from itunes, when i choose to play it, show the book icon then turns to ipod to start up, i have reloaded the settings on my ipod but no luck. any one can help me?

  • APEX - passing values from LOV's or multi-select LOV's to another APEX form

    I am new APEX development and I need to take the values from LOV's and multi-select LOV's and pass them to another APEX form. I want to take those passed values and use them in the where clause of the base-table in the called form. Any assistance wou

  • Programmatically select a property

    Hello, Is it possible to programmatically select a property for a FP object? Properties for which a value change is required are stored in a database (as are the values itself). I can't use a property node because the poperty to change is not fixed a

  • Cannot reinstall my photoshop elements 9 from disk

    I recently had to uninstall and reinstall photoshop elements 9 on my computer.  Now the CD won't reinstall.  There is nothing visually wrong with the CD, but it freezes and refuses to continue the installation process once it reaches "copying files".