1

私は ac# アプリケーションを持っています。データベース ファイルを CD から目的のフォルダにコピーし、それをログインやその他の目的で使用する必要があります。このために、次のようにインストーラー クラスを作成しました。

public partial class Installer1 : Installer
{
    public Installer1()
    {
        InitializeComponent();
        Copy_our_Files();
    }

    private void Copy_our_Files()
    {  
        System.IO.DriveInfo[] drives = System.IO.DriveInfo.GetDrives();
        var d = "";

        foreach (System.IO.DriveInfo drive in drives)
        {
            if (drive.DriveType == System.IO.DriveType.CDRom)
            {
                d = drive.Name;
                break;
            }
        }

        string addre = @"C:\Windows\\System32";
        System.IO.File.Copy(d + @"Database5.accdb", addre + "\\Database5.accdb");
    }
}  

しかし、私のアプリケーションのインストール中に、データベースファイルはc:\Windwos\System32フォルダーである言及された場所にコピーされません。

4

2 に答える 2

4

インストーラーでこれを行う必要があります。アプリケーションファイルをインストールしていると言いました。使用しているインストーラ ソフトウェアのインスタンスは、そのデータベース ファイルをコピーする必要があります。追加のファイルをコピーすることは、インストール ソフトウェアに簡単に実装できるはずです。

あなたの現在のハックは非常に不安定で、現実世界の多くのシナリオで失敗します:

  • CD ROM ドライブがない場合はどうすればよいですか? USB スティックや同僚の PC の CR ROM ドライブからインストールすることはできません。

  • 複数の CD ROM ドライブがある場合はどうなりますか?

  • Windows が C:\Windows にインストールされていない場合はどうなりますか?

  • System32 ディレクトリへの書き込み権限がない場合はどうなりますか? なぜそこに書きたいのですか?

結論: あなたの問題は、インストーラー ソフトウェアによって既に解決されています。あなたはすでに「インストール」しているので、すでにインストーラーソフトウェアを使用していると思います。本来の目的を果たすようにし、自分で真似しようとしないでください。

于 2013-10-02T14:52:43.073 に答える