dotnet发布时带/ p:PublishProfile =?

时间:2018-05-14 14:05:52

标签: c# asp.net .net

我试图打电话给#34; dotnet发布"使用特定的发布配置文件pubxml文件,如下所示:

https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/visual-studio-publish-profiles?view=aspnetcore-2.1&tabs=aspnetcore2x

但是,我尝试的所有内容似乎都会导致默认行为,并且会忽略/ p:PublishProfile部分。

dotnet publish /p:PublishProfile="MyFolderProfile"

没有工作,并且没有记录错误,构建到" / obj"下的默认位置。

我注意到故意不正确的命令具有相同的结果,例如:

dotnet publish /p:PublishProfile="MyFolderProfile-XXXXX"

我做错了什么? - 任何指针将不胜感激!

6 个答案:

答案 0 :(得分:3)

前一段时间,我遇到了同样的问题。我设法通过改而解决:

dotnet build [projectname] /p:PublishProfile=[PublishProfile]

答案 1 :(得分:1)

您可能需要完整的路径,例如

dotnet publish -c Release /p:PublishProfile=Properties\PublishProfiles\FolderProfile.pubxml

答案 2 :(得分:1)

请参见https://github.com/dotnet/docs/issues/19677。 PublishProfile只是名称,可以忽略它之前的任何目录。

PublishProfile属性被视为文件名,目录为 单独构建。

如果指定自定义路径,则应使用PublishProfileFullPath属性。

答案 3 :(得分:0)

我在VS build事件上使用了

dotnet publish $(SolutionDir)DIRECTORI_1/PROJECT_1.csproj -c Release -o C:\Deployments\FOLDER_1

答案 4 :(得分:0)

我的回复晚了。我的解决方案有一个简单的.NET Core控制台应用程序org.hibernate.WrongClassException。我使用ConsoleAppCore.csproj生成了一个名为Visual Studio IDE的发布配置文件,然后以下命令对我有用:

相对路径-从解决方案根开始

FolderProfile.pubxml

绝对路径-从任何位置

dotnet publish ConsoleAppCore\ConsoleAppCore.csproj /p:PublishProfile=ConsoleAppCore\Properties\PublishProfiles\FolderProfile.pubxml

在Azure开发人员上

任务名称 =。NET Core

任务版本 = 2

命令 =发布

项目路径 =我将此留空了

参数 =

dotnet publish "C:\work\ConsoleAppCore\ConsoleAppCore.csproj"   "/p:PublishProfile=C:\work\ConsoleAppCore\Properties\PublishProfiles\FolderProfile.pubxml"

Azure Dev Ops 构建管道方案中,我将输出重定向到$(System.DefaultWorkingDirectory)\ConsoleAppCore\ConsoleAppCore.csproj /p:PublishProfile=$(System.DefaultWorkingDirectory)\ConsoleAppCore\Properties\PublishProfiles\FolderProfile.pubxml --configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)\ConsoleAppCore-Publish\ 下的文件夹中。我还有一个 Publish Artifact 任务,该任务配置为使用暂存目录变量。

我之所以使用发布配置文件XML文件,是因为我希望在 Azure Devops 上使用单个文件来控制整个行为。依靠单个文件的所有参数可以简化Azure上的管理。

Azure Dev ops-Artifacts Explorer

$(Build.ArtifactStagingDirectory)任务为我创建了一个放置,这就是它的外观。请注意,资源管理器中的文件名与Publish Artifact任务中的--output选项一起指定的名称 enter image description here

答案 5 :(得分:0)

尝试基于以下方法:https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/visual-studio-publish-profiles?view=aspnetcore-3.1#publish-profiles

dotnet build ..\project\project.csproj /p:DeployOnBuild=true -c Release /p:PublishProfile="Folder Staging"

我提供了一个相对的csproj路径和一个发布的配置文件名称,并在其中带有空格,以阐明如何处理这些情况。 -c标志可用于指定要使用的配置。