Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何创建安装程序,然后在安装后运行文件?_C#_Visual Studio_Visual Studio 2015_Windows Installer_Visual Studio Setup Proje - Fatal编程技术网

C# 如何创建安装程序,然后在安装后运行文件?

C# 如何创建安装程序,然后在安装后运行文件?,c#,visual-studio,visual-studio-2015,windows-installer,visual-studio-setup-proje,C#,Visual Studio,Visual Studio 2015,Windows Installer,Visual Studio Setup Proje,我目前正在visual studio 2015中使用安装项目。它工作得很好,除了我有一个特殊的需要的问题。安装程序完成后,我需要运行在应用程序上注册服务器的.js文件。如果我将.js文件添加到安装文件夹中的“自定义操作”中,当我运行安装程序时,它会在安装过程中运行我的文件。这是不好的,因为服务器还没有准备好注册。我需要这个.js文件在安装后运行。如果任何有安装项目经验的人能帮助我,我将非常感激。然而,如果有人知道一个更好的安装制造商,可以做到我的要求,我也会非常感兴趣。也许WIX可以帮我做这件事

我目前正在visual studio 2015中使用安装项目。它工作得很好,除了我有一个特殊的需要的问题。安装程序完成后,我需要运行在应用程序上注册服务器的.js文件。如果我将.js文件添加到安装文件夹中的“自定义操作”中,当我运行安装程序时,它会在安装过程中运行我的文件。这是不好的,因为服务器还没有准备好注册。我需要这个.js文件在安装后运行。如果任何有安装项目经验的人能帮助我,我将非常感激。然而,如果有人知道一个更好的安装制造商,可以做到我的要求,我也会非常感兴趣。也许WIX可以帮我做这件事?

在visual studio中为您的设置项目添加一个。您可以覆盖此安装程序类中的许多安装阶段

例:

  • OnBeforeInstall()
  • 安装()
  • OnAfterInstall()
  • 您可以重写相关方法并在该方法中添加逻辑以执行.js文件

    您可能需要获取安装MSI的目录,以便获取.JS文件的路径并执行它。下面的代码应该可以从安装目录中获取。在installer类中添加此代码

    string installationPath = Context.Parameters["assemblypath"];
    
    向visual studio中的设置项目添加一个。您可以覆盖此安装程序类中的许多安装阶段

    例:

  • OnBeforeInstall()
  • 安装()
  • OnAfterInstall()
  • 您可以重写相关方法并在该方法中添加逻辑以执行.js文件

    您可能需要获取安装MSI的目录,以便获取.JS文件的路径并执行它。下面的代码应该可以从安装目录中获取。在installer类中添加此代码

    string installationPath = Context.Parameters["assemblypath"];
    

    请试用InstallShield 2013,并提供有限保修。它应该是免费供个人使用的,并且它包括一个在安装完成后运行脚本的功能。

    在有限保修期内尝试InstallShield 2013。它应该是免费供个人使用的,并且它包括在安装完成后运行脚本的功能。

    这似乎正是您所需要的:

    这将为您提供有关安装程序项目自定义操作的更多信息:


    这似乎正是您所需要的:

    这将为您提供有关安装程序项目自定义操作的更多信息:



    您可以在installer类中添加逻辑,以便在安装后在上执行.js文件管理器。@Kurubaran您介意扩展一下吗?你说的这个“安装类”是什么?听起来是正确的方法。您可以在安装程序类中添加逻辑,以便在安装后在上执行.js文件管理器。@Kurubaran您介意扩展一下吗?你说的这个“安装类”是什么?听起来这是正确的方法。我不是故意让人讨厌或忘恩负义,但你介意陪我度过这段时间吗?我右键单击我的安装项目并选择“添加>文件…”?我看不到添加类的选项。另外,我所有的.js文件都在运行命令提示符行。忘记.js文件并让我的安装程序自己编写命令会容易得多吗?如果可能的话?@J.Doe您需要将类库添加到解决方案中,并将安装程序类添加到该类库中。这会与我的安装项目冲突吗?不会,一旦你实现了安装程序类,你就需要将类库添加到安装程序的自定义操作中。我不是想让人讨厌或忘恩负义,但是你介意陪我度过这段时间吗?我右键单击我的安装项目并选择“添加>文件…”?我看不到添加类的选项。另外,我所有的.js文件都在运行命令提示符行。忘记.js文件并让我的安装程序自己编写命令会容易得多吗?如果可能的话?@J.Doe您需要将类库添加到解决方案中,并将installer类添加到该类库中。这会与我的安装项目冲突吗?不,一旦实现installer类,您需要将类库添加到installer的自定义操作中。我需要它可以用于商业用途,抱歉。谢谢你的想法,但我需要它可以用于商业用途,对不起。感谢我在问题中描述的想法,为什么这种方法不起作用。但基本上问题是自定义操作>安装文件夹在安装过程中执行我的脚本。我需要在安装后执行它。正如我在前面的一个相关问题中所说的,从Visual Studio安装程序扩展安装程序运行的自定义操作不会在“中间”运行,它们会在安装完所有文件后运行,在您克服这一误解之前,很难为您提供帮助。所有文件都是在CA运行时安装的,所以这是另一个问题。我在问题中描述了为什么这种方法不起作用。但基本上问题是自定义操作>安装文件夹在安装过程中执行我的脚本。我需要在安装后执行它。正如我在前面的一个相关问题中所说的,从Visual Studio安装程序扩展安装程序运行的自定义操作不会在“中间”运行,它们会在安装完所有文件后运行,在您克服这一误解之前,很难为您提供帮助。所有文件都是在CA运行时安装的,因此这是另一个问题。