从csproj文件调用目标

时间:2014-12-05 23:55:57

标签: c# msbuild clickonce

此问题与我尝试发布的clickonce项目有关。

基本上,我希望有一个针对每个测试环境进行发布的目标运行,以便我可以相应地设置publishurl和publishdir。

构建项目时,我希望能够在不使用DefaultTargets或将其作为msbuild参数添加的情况下调用此新目标。如果没有这些步骤,我怎么能打电话给某个目标?

例: 您可以从另一个目标调用目标,例如:

<Target Name="ClientPublish">
    <CallTarget Targets="PublishForEachEnv" />
</Target>

但是我如何直接从csproj调用PublishForEachEnv目标?

希望这是有道理的

1 个答案:

答案 0 :(得分:0)

我不太确定你的意思,但我会对它采取行动。

要编辑csproj,请在解决方案资源管理器中右键单击它,然后选择卸载项目。然后,一旦它在解决方案资源管理器中变为灰色且不可用,再次右键单击它并选择编辑[您的项目名称]

该文件是XML格式,您可以在那里进行排序。如果你向下看,你会看到一些目标文件导入,你也应该看到每个用于BeforeBuild和AfterBuild的空目标。您可以在此处将调用添加到自定义目标,AfterBuild可能最适合您。您可以将自定义目标内嵌到csproj或导入文件中。

您必须返回解决方案资源管理器,右键单击项目并选择重新加载项目以使更改生效。

此外还有另一种选择:添加一个post build事件,将您感兴趣的值打印到构建输出窗口:

因此,这意味着解决方案资源管理器,右键单击项目,选择属性,构建事件,然后编辑后构建。

您应该可以通过输入

来获得所需内容
  

echo&#34;我的发布网址是:&#39; $(PublishUrl)&#39; &#34;

请注意,您在宏列表中无法使用PublishUrl,但您仍然可以通过手动输入来使用它 - 该列表只包含常用宏。