我试图找到一种构建和发布asp.net应用程序的方法(不是核心)
在建立Docker形象的时候。
这就是我目前所得到的:
FROM mcr.microsoft.com/dotnet/framework/sdk:4.8 AS buildcommercemanager
WORKDIR /app
COPY *.sln .
COPY Sources/ ./Sources/
RUN nuget sources Add -Name "EPiServer" -Source "https://nuget.episerver.com/feed/packages.svc/"
RUN nuget restore
WORKDIR /app/Sources/EPiServer.Reference.Commerce.Manager/
RUN msbuild /p:Configuration=Release
WORKDIR /app/Sources/EPiServer.Reference.Commerce.Site/
RUN msbuild /p:Configuration=Release
FROM mcr.microsoft.com/dotnet/framework/aspnet:4.8 AS commercemanager
WORKDIR /inetpub/wwwroot
COPY --from=buildcommercemanager /app/Sources/EPiServer.Reference.Commerce.Manager/. ./
正如你所看到的,我需要在构建时添加一个nuget feed。
然而。。我目前的问题是,上面的步骤实际上也“复制”了源代码并将其添加到我的iis站点文件夹中,这不是一个理想的结果。
我想实现的基本上与visual studio中的“发布到文件夹”完全相同。
我已阅读到在运行msbuild时可以触发发布配置文件。然而。。在这种情况下,我不太确定我是否可以使用它,因为一旦创建了publish profie,它就会指向本地计算机上的一个位置,而在容器上,这个路径可能会完全丢失。
是否有任何方法可以告诉msbuild使用实例“publish to folder”,然后使用参数指定文件夹/输出文件夹?…或者其他建议?
编辑
基本上,我认为可以解决我的问题的方法相当于dotnet publish-o{path}for core