我试图打电话给#34; dotnet发布"使用特定的发布配置文件pubxml文件,如下所示:
但是,我尝试的所有内容似乎都会导致默认行为,并且会忽略/ p:PublishProfile部分。
dotnet publish /p:PublishProfile="MyFolderProfile"
没有工作,并且没有记录错误,构建到" / obj"下的默认位置。
我注意到故意不正确的命令具有相同的结果,例如:
dotnet publish /p:PublishProfile="MyFolderProfile-XXXXX"
我做错了什么? - 任何指针将不胜感激!
答案 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
选项一起指定的名称
答案 5 :(得分:0)
dotnet build ..\project\project.csproj /p:DeployOnBuild=true -c Release /p:PublishProfile="Folder Staging"
我提供了一个相对的csproj路径和一个发布的配置文件名称,并在其中带有空格,以阐明如何处理这些情况。 -c
标志可用于指定要使用的配置。