使用JetBrains Rider发布Web项目

29

我想尝试使用Rider,目前来看,我相当喜欢它。

在Visual Studio中,我经常使用的一个功能是,在Web项目上右键单击并发布到我们的测试服务器。

我在Rider中找不到类似的选项,所以我所做的是创建一个运行配置,具有以下设置:

  • Exe路径:C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/MSBuild/15.0/Bin/amd64/msbuild.exe
  • 参数:MySolution.sln /m /p:DeployOnBuild=True /p:PublishProfile=My-Project "/p:platform=Any CPU" /p:configuration=Release /p:VisualStudioVersion=15.0 /p:Password=****
  • 工作目录:C:\SolutionFolder

当我想要发布时,我从下拉列表中选择它,然后点击运行。
这个方法完全可行。

我的问题是,除了设置CI管道之外,这是最好的方法吗?我是否错过了IDE中的某个选项或设置?

设置


我尝试了你的解决方案,但是收到了警告:未解析的命令行参数。 - Jongz Puangput
这是来自 Rider 或 MSBuild 的警告吗?我从来没有检查过是否有任何警告,如果它仍然正常工作,也许一些参数是不必要的。 - JonathanPeel
2
您也可以尝试从命令行运行此操作,从解决方案文件夹使用 "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\amd64\msbuild.exe" Musketeer.sln /m /p:DeployOnBuild=True /p:PublishProfile=Musketeer-Web "/p:platform=Any CPU" /p:configuration=Release /p:VisualStudioVersion=15.0 /p:Password=mYuBeRpAsS,只需替换SLN、发布配置文件、密码等。 - JonathanPeel
我也附上了一张截图作为参考。 - JonathanPeel
谢谢,我必须在我的代码中添加allowuntrusted:Your.sln /p:DeployOnBuild=true /p:PublishProfile="Your Profile" /p:Password=PasswordInProfile /p:AllowUntrustedCertificate=true - chrispepper1989
显示剩余2条评论
2个回答

16
截至2018年6月,Rider没有用于发布的UI界面
有一个功能请求,您可以在登录YouTrack后投票支持。
作为解决方法,可以创建“ .NET可执行文件”配置,就像您所做的那样,并在需要发布项目时运行它。
更详细的说明如下:
  1. Run > Edit Configuration
  2. Add new configuration > .NET Executable
  3. Name = 您的项目名称
  4. Exe path = 指向MSBuild的路径(例如C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/MSBuild/15.0/Bin/amd64/MSBuild.exe
  5. Program arguments = YourSolution.sln /t:"Your_Project" /p:PublishProfile=YourPublishProfile.pubxml /p:Configuration=Debug /p:DeployOnBuild=true /m
  6. Working directory = C:/path/to/solution/dir/

注意:

  • 项目发布配置文件通常位于项目文件夹下的 Properties/PublishProfiles 文件夹中。如果没有,您可以使用下面报告的示例开始;
  • 您需要将项目名称中的点(.)替换为下划线(_)。在上面的示例中,Your.Project 被传递为 Your_Project
  • 如果发布配置文件中尚未指定发布目录,则可以通过添加参数 /p:PublishDir="C:/path/to/publish/dir/" 来指定不同的发布目录;
  • 如果您的计算机上没有安装 Visual Studio,则可以使用 Visual Studio 2017 的构建工具 中捆绑的 MSBuild。

发布配置文件示例:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <WebPublishMethod>FileSystem</WebPublishMethod>
    <LastUsedBuildConfiguration>Debug</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <SiteUrlToLaunchAfterPublish />
    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
    <ExcludeApp_Data>False</ExcludeApp_Data>
    <publishUrl>..\YourPublishDirectory</publishUrl>
    <DeleteExistingFiles>True</DeleteExistingFiles>
    <ExcludeFilesFromDeployment>bin\*.dll.config</ExcludeFilesFromDeployment>
  </PropertyGroup>
</Project>

我发现同样的方法也适用于在Mac上使用Rider发布WebJob项目至Azure WebJob。我使用了“Native Executable”而不是“.NET Executable”,并使用以下MSBuild路径:/Library/Frameworks/Mono.framework/Versions/Current/bin/msbuild。此外,还需要使用 /p:Password=$PublishingProfilePasswordHere$ 来指定发布配置文件的密码。 - Crulex
@Crulex,如果我直接从Azure下载了一个*.PublishSettings文件,那么我在哪里可以找到这个密码?VS从未要求输入密码,并且可以无问题地部署到特定槽位。 - Bruno Finger
密码应该在.PublishSettings文件中。 - Crulex
“发布”选项应该在“解决方案资源管理器”工具窗口中,右键单击您的解决方案时出现。 - Pang
1
Rider现在已经有了UI界面来发布(对于那些阅读这篇旧帖子的人)。 - Charles Burns

3

Rider的最新版本支持通过UI进行发布。如果您的计算机上没有安装Visual Studio,请确保Web项目已安装了Build.Microsoft.VisualStudio.Web.targets NuGet包。


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