2014-12-05 56 views
2

此问题与我尝试发布的clickonce项目有关。从csproj文件调用目标

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

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

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

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

但我怎么会直接打电话给PublishForEachEnv目标从的csproj?

希望这是有道理

回答

0

我不太清楚你的意思是什么,但我会在它需要一个裂缝。

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

该文件是在XML中,你可以在那里做所有的排序。如果您看到底部,您会看到一些目标文件导入,并且您还应该在BeforeBuild和AfterBuild中分别看到一个空目标。您可以将呼叫添加到您的自定义目标,AfterBuild可能最适合您。您可以将您的自定义目标内嵌到csproj中或导入文件中。

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

此外,还有另一种选择:添加它打印你有兴趣到构建输出中窗口中的值后生成事件:

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

你应该能够得到你想要的东西通过输入线

回声“我的发布网址是:‘$(PublishUrl)’”

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