是否有一种方法可以在Visual Studio项目中生成特定于用户的生成前/生成后事件

本文关键字:于用户 事件 用户 项目 一种 方法 是否 Studio Visual | 更新日期: 2024-07-27 07:07:26

我目前正在项目中使用一个生成后事件将程序集复制到另一个目录以进行调试。这是我的机器本地的,仅用于调试目的,所以我更喜欢将它放在*.csproj.user文件中,而不是*.csproj。我尝试将负责的元素从*.csproj复制到*.csproj.user,但没有成功。

编辑为了澄清,我不想将特定于用户的命令放在*.csproj文件中的构建后事件中。相反,我想把构建后的事件命令放在*.csproj.user文件中。(从目前的答案来看,这看起来是不可能的)

为了提供更多上下文,它不是项目参考。我正在将程序集复制到运行时加载程序集的应用程序的目录中。(想想插件)

是否有一种方法可以在Visual Studio项目中生成特定于用户的生成前/生成后事件

简短的答案是否定的,而不是您想要的方式:|

稍微长一点的答案是sorta。理论上,您可以为单个用户触发特定的构建事件,但这些事件仍将在csproj文件中。您可以在生成上运行外部事件,然后允许这些外部事件运行,具体取决于运行它们的用户(作为脚本)。

如果这只是为了调试,我只会插入它们,做你的构建工作,并在上传到你的版本控制系统之前将它们取出。

使用if语句和环境变量(如果需要,请使用双引号)

if "$(Username)" == "MyUser"
  copy /y $(ProjectDir)memcached.$(ConfigurationName).config $(ProjectDir)memcached.config

您可以使用具有由环境变量触发的条件的自定义构建目标。然后只在您的机器上设置该变量。

构建前/构建后事件保存在项目文件中。VS不提供任何选项。

您可以引入一个自定义(外部)工具来执行这种复制,并从菜单或宏中调用它。