【问题标题】:Publish web project from JetBrains Rider从 JetBrains Rider 发布 Web 项目
【发布时间】:2017-10-28 03:51:48
【问题描述】:

我正在尝试 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

当我想发布时,我从下拉列表中选择它并点击运行。
这 100% 有效。

我的问题是,如果不设置 CI 管道,这是最好的方法吗?我是否缺少 IDE 中的选项或设置?

【问题讨论】:

  • 我通过得到警告尝试您的解决方案:未解析的命令行参数:
  • 这似乎是来自 Rider 或 MSBuild 的警告?我从来没有检查过我是否收到任何警告,如果它仍然有效,也许一些参数是不必要的。
  • 我认为来自 Rider
  • 这仍然对我有用。你可以检查几件事。 1)检查MSBuild的浴缸。 2) 确保您有发布配置文件。这是 .My Project\PublishProfiles 下的 XML 文件(可以用 Visual Studio 创建)
  • 您也可以尝试从命令行运行它,从解决方案文件夹中使用 "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、发布配置文件、密码等。

标签: rider


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    截至 2018 年 6 月,Rider doesn't have UI for publishing

    登录 YouTrack 后,您可以为 feature request 投票。

    作为一种解决方法,可以像您一样创建“.NET 可执行文件”配置,并在您想要发布项目时运行它。

    更详细的说明如下:

    1. 运行 > 编辑配置
    2. 添加新配置 > .NET 可执行文件
    3. 名称 = 您的项目名称
    4. Exe 路径 = MSBuild 的路径(例如C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/MSBuild/15.0/Bin/amd64/MSBuild.exe
    5. 程序参数 = YourSolution.sln /t:"Your_Project" /p:PublishProfile=YourPublishProfile.pubxml /p:Configuration=Debug /p:DeployOnBuild=true /m
    6. 工作目录 = C:/path/to/solution/dir/

    注意事项:

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

    【讨论】:

    • 我发现在 Rider for Mac 中使用相同的方法将 WebJob 项目发布到 Azure WebJob。我使用了“Native Executable”而不是“.NET Executable”和以下 MSBuild 路径:/Library/Frameworks/Mono.framework/Versions/Current/bin/msbuild。此外,必须使用 /p:Password=$PublishingProfilePasswordHere$ 指定发布配置文件密码
    • @Crulex 如果我直接从 Azure 下载了 *.PublishSettings 文件,我在哪里可以找到此密码? VS 从不要求输入密码,并且可以毫无问题地部署到特定插槽。
    • 密码应该在.PublishSettings文件中。
    • "发布选项应该在解决方案资源管理器工具窗口中解决方案的右键菜单中" -- rider-support.jetbrains.com/hc/en-us/community/posts/…