我正在使用 VS2010 并使用 C# 创建了一个程序。
我有一个 WIX 安装程序,它在应用程序的主文件夹中创建子文件夹并将文件复制到这些文件夹中。
问题是,当我只想从 VS 运行应用程序并对其进行调试时,不会像在我的 WIX 文件中那样创建目录,但在我的代码中,我指望这些目录出现并访问那里的文件。
如何让 Visual Studio 在编译时创建与应用程序相同的目录树,就像在安装本身中创建的那样,这样我就可以运行它并在一切就绪的情况下对其进行调试?
我正在使用 VS2010 并使用 C# 创建了一个程序。
我有一个 WIX 安装程序,它在应用程序的主文件夹中创建子文件夹并将文件复制到这些文件夹中。
问题是,当我只想从 VS 运行应用程序并对其进行调试时,不会像在我的 WIX 文件中那样创建目录,但在我的代码中,我指望这些目录出现并访问那里的文件。
如何让 Visual Studio 在编译时创建与应用程序相同的目录树,就像在安装本身中创建的那样,这样我就可以运行它并在一切就绪的情况下对其进行调试?
您需要在安装文件后设置执行自定义操作,如下所示:
<InstallExecuteSequence>
<Custom Action="MyAction" After="InstallFiles">NOT Installed</Custom>
</InstallExecuteSequence>
您也可以在 InstalFinalize 之前使用。然后在您的自定义 C# 操作中写下:
Debugger.Launch();
现在运行您的安装程序,当您的自定义操作到达此行时,它将要求您调试并启动 VS。
我解决它的方式(如果你有更好的解决方案,我很乐意分享它)是转到主项目的属性并添加一些构建后事件,这些事件以应有的方式复制文件。这样我就可以在不需要使用Debugger.Launch();
线的情况下进行调试