Visual Studio. 从命令行发布项目

40

在 MS Visual Studio 2010 中,有没有使用命令行界面发布 Web 项目的方法?我使用 DevEnv.exe /Build 来构建项目,它运行良好,但我找不到发布项目的选项。

还有一件事我想提一下。我尝试将 Web 项目发布到不是 IIS 的地方。我有一个位置可以发布多个项目,并将它们自动构建成 NSIS 包以便部署。

4个回答

49

Can't find the valid AspnetMergePath - Toolkit

30

最好的做法是将以下目标添加到项目文件中:

<Target Name="AfterBuild">
   <Message Text="Copying to Deployment Dir:" />
   <Copy SourceFiles="@(Content)" DestinationFolder="..\XXX\%(Content.RelativeDir)" />
      <CreateItem Include="$(OutputPath)\*">
        <Output TaskParameter="Include" ItemName="Binaries"/>
      </CreateItem>
   <Copy SourceFiles="@(Binaries)" DestinationFolder="..\XXX\bin" />
</Target>

这样,每当项目被构建(无论是从命令行还是从IDE)时,它都会自动部署到指定的文件夹中。感谢大家指引我正确的方向。


我对此的问题是它会同时发布调试和发布模式,不是吗?如果您的调试配置被发布,这可能会对现场网站产生严重后果。我认为我们需要一个CLI批处理程序,可以执行:“使用此发布设置构建发布版本并发布”。 - Rob Kent
1
@RobKent,你可以设置配置文件转换,然后只针对特定的构建配置来触发上述行为。只需搜索 .net 配置转换即可。 - Brian Sweeney
它是否处理web.config合并? - Toolkit

6
/t:publish 开关仅适用于 ClickOnce 应用程序,不适用于 Web 项目。因此会出现“无法发布”的错误提示。 :)

4
这不是一个答案。 - Gusdor
@Gusdor 这是对原帖的回答,因为原来的问题是为什么会出现“不可发布”的错误提示。 - Ted Nyberg
这不是对楼主问题的回答,而是对他在另一个答案上的评论的回应。 - Auspex

0

@RobKent使用https://dev59.com/AnE85IYBdhLWcg3wbTH2#2775437

<Target Name="AfterBuild" Condition=" '$(Configuration)' == 'Release' ">
   <Message Text="Copying to Deployment Dir:" />
   <Copy SourceFiles="@(Content)" DestinationFolder="..\XXX\%(Content.RelativeDir)" />
      <CreateItem Include="$(OutputPath)\*">
        <Output TaskParameter="Include" ItemName="Binaries"/>
      </CreateItem>
   <Copy SourceFiles="@(Binaries)" DestinationFolder="..\XXX\bin" />
</Target>

你可以只在发布编译时进行发布。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接