9

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

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

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

4

4 回答 4

7

简短的回答是不,不是你想要的方式:|

稍长的答案是排序。理论上,您可以为单个用户触发特定的构建事件,但这些事件仍将在 csproj 文件中。您可以在构建上运行外部事件,然后根据运行它们的用户(作为脚本)允许这些外部事件运行。

如果这仅用于调试,我只需插入它们,在将其上传到您的版本控制系统之前进行构建并将它们拉出。

于 2012-07-27T15:11:20.253 回答
4

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

if "$(Username)" == "MyUser"
  copy /y $(ProjectDir)memcached.$(ConfigurationName).config $(ProjectDir)memcached.config
于 2012-07-27T15:11:20.870 回答
2

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

于 2012-07-27T15:09:25.270 回答
0

Pre-/Post-build 事件保存在项目文件中。VS 没有提供任何选项。

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

于 2012-07-27T15:08:50.047 回答