这个问题与我要发布的 clickonce 项目有关。
基本上,我希望运行一个针对每个测试环境执行发布的目标,以便我可以相应地设置 publishurl 和 publishdir。
构建项目时,我希望能够在不使用 DefaultTargets 或将其添加为 msbuild 参数的情况下调用这个新目标。如果没有这些步骤,我如何调用某个目标?
例如: 您可以从另一个目标调用一个目标,例如:
<Target Name="ClientPublish">
<CallTarget Targets="PublishForEachEnv" />
</Target>
但是我如何直接从 csproj 调用 PublishForEachEnv 目标?
希望这是有道理的
最佳答案
我不太清楚你的意思,但我会尝试一下。
要编辑您的 csproj,请在解决方案资源管理器中右键单击它,选择卸载项目。然后,当它在解决方案资源管理器中变灰且不可用时,再次右键单击它并选择编辑[您的项目名称]。
该文件是 XML 格式的,您可以在其中进行所有排序。如果您朝底部看,您会看到一些目标文件导入,您还应该看到 BeforeBuild 和 AfterBuild 各有一个空目标。您可以在此处添加对自定义目标的调用,AfterBuild 可能最适合您。您可以将自定义目标内联包含在 csproj 或导入文件中。
您必须返回解决方案资源管理器,右键单击该项目并选择重新加载项目,以使您的更改生效。
此外,还有另一种选择:添加一个构建后事件,将您感兴趣的值打印到构建输出窗口:
因此,这意味着解决方案资源管理器,右键单击该项目,选择属性、构建事件,然后编辑构建后。
你应该可以通过输入行来得到你想要的东西
echo "My publish URL is: '$(PublishUrl)' "
请注意,PublishUrl
在宏列表中不可用,但您仍然可以通过手动输入来使用它 - 该列表仅包含常用宏。
关于c# - 从 csproj 文件调用目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27326594/