Visual Studio 2010具有"发布"命令,允许您将Web应用程序项目发布到文件系统位置.我想在我的TeamCity构建服务器上执行此操作,因此我需要使用解决方案运行程序或msbuild.我尝试使用Publish目标,但我认为这可能适用于ClickOnce:
msbuild Project.csproj /t:Publish /p:Configuration=Deploy
Run Code Online (Sandbox Code Playgroud)
我基本上想要完成Web部署项目的功能,但没有加载项.我需要它来编译WAP,删除执行不必要的任何文件,执行任何web.config转换,并将输出复制到指定的位置.
我的解决方案基于Jeff Siver的回答
<Target Name="Deploy">
<MSBuild Projects="$(SolutionFile)"
Properties="Configuration=$(Configuration);DeployOnBuild=true;DeployTarget=Package"
ContinueOnError="false" />
<Exec Command=""$(ProjectPath)\obj\$(Configuration)\Package\$(ProjectName).deploy.cmd" /y /m:$(DeployServer) -enableRule:DoNotDeleteRule"
ContinueOnError="false" />
</Target>
Run Code Online (Sandbox Code Playgroud) 好的,这是一个奇妙的错误.我有一个2012解决方案,在2012 TFS服务器上执行MSBuild.传递给构建过程模板中"MSBuild Arguments"字段的参数如下:
/ p:DeployOnBuild = true/p:PublishProfile = ProfileForProjectA/p:PublishProfile = ProfileForProjectB /p:VisualStudioVersion=11.0
我从TFS回来的错误是....
C:\ Program Files(x86)\ MSBuild\Microsoft\VisualStudio\v11.0\Web\Microsoft.Web.Publishing.targets(4435):PublishProfile的值设置为'ProfileForProjectA',期望在''找到文件' C:\ Builds\1\Solution\Solution\Sources\Solution\ProjectB\Properties\PublishProfiles\ProfileForProjectA.pubxml'但找不到它.
换句话说,构建服务器似乎希望每个发布配置文件(*.pubxml)都在每个PublishProfiles文件夹中.这两个项目的发布方法是"文件系统".
唯一解决它的是将ProfileForProjectA添加到ProjectB的PublishProfiles文件夹,反之亦然,但这似乎不是一个非常优雅的解决方案.任何人都可以重现这种行为吗?有没有人有更优雅的解决方案?我错过了什么吗?
提前致谢.
我正在为我的站点设置一些 DevOps,到目前为止,我已经使用以下命令在两个 ASP.NET Core 应用程序上进行了部署,并取得了成功:
dotnet publish ProjectName.csproj /p:PublishProfile="PublishProfileName" /p:Password=password
Run Code Online (Sandbox Code Playgroud)
我刚刚创建了一个 Azure 函数,使用 V2 运行时和 .NET Core 2.1,正如所有新项目的建议一样(请参阅此处https://azure.microsoft.com/en-us/blog/introducing-azure-functions- 2-0/ ),但如果我使用相同的命令,我发现它只将其发布到本地文件夹,似乎并未将项目部署到 Azure。
如果我使用 MSBuild 等效项,它似乎也错过了部署阶段。
我猜它在某种程度上与项目类型有关,没有合适的构建目标,但我不确定如何进一步跟踪。
我可以从 Azure 下载发布设置,将它们导入 Visual Studio 并通过 VS 发布,所以看起来如果 VS 路径有效,这可能是某处工具中的回归或错误,而不是不受支持的东西?
我正在使用:
如果我不应该将 dotnet publish 与 Azure 函数一起使用,我应该使用什么来代替命令行 CD?我已经看到了对 Azure Function CLI 工具的引用,但如果可以通过其他工具完成,我宁愿不必在我们的构建代理上安装包管理器。