[dotnet] use **FromWorkload** for targeting/runtime pack versions (#12449)
Context: https://github.com/dotnet/sdk/pull/19596 Context: https://github.com/xamarin/xamarin-android/pull/6184 If we use the version number string of `**FromWorkload**`, then our runtime packages don't need to be resolved from a NuGet feed. They can be resolved from the `dotnet/packs` directory. This completely eliminates the need for a `NuGet.config` file when building a .NET 6 app with a local build of xamarin-macios. You will no longer need a feed such as: <add key="local-dotnet-feed" value="~/src/xamarin-macios/_build/nuget-feed" /> To further clean things up, I removed the need for: * Any NuGet feed named `local-dotnet-feed` * `$(DOTNET_FEED_DIR)` * Generation of `dotnet/Workloads/NuGet.config`
This commit is contained in:
Родитель
335d7575fc
Коммит
8d0c1c9031
|
@ -519,7 +519,6 @@ DOTNET=/usr/local/share/dotnet/dotnet
|
|||
DOTNET_DESTDIR ?= $(TOP)/_build
|
||||
DOTNET_NUPKG_DIR ?= $(DOTNET_DESTDIR)/nupkgs
|
||||
DOTNET_PKG_DIR ?= $(DOTNET_DESTDIR)/pkgs
|
||||
DOTNET_FEED_DIR ?= $(DOTNET_DESTDIR)/nuget-feed
|
||||
|
||||
# Configuration for .NET 6.
|
||||
# We're using preview versions, and there will probably be many of them, so install locally (into builds/downloads) if there's no system version to
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
NuGet.config
|
||||
global.json
|
||||
tmpdir
|
||||
Workloads/Microsoft.NET.Sdk.*/LICENSE
|
||||
|
|
|
@ -45,7 +45,6 @@ $(foreach platform,$(DOTNET_WINDOWS_PLATFORMS),$(eval $(call DefineWindowsTarget
|
|||
DIRECTORIES += \
|
||||
$(DOTNET_NUPKG_DIR) \
|
||||
$(DOTNET_PKG_DIR) \
|
||||
$(DOTNET_FEED_DIR) \
|
||||
$(foreach platform,$(DOTNET_PLATFORMS),$(DOTNET_DESTDIR)/Microsoft.$(platform).Sdk/data) \
|
||||
$(foreach platform,$(DOTNET_PLATFORMS),$(DOTNET_DESTDIR)/Microsoft.$(platform).Sdk/Sdk) \
|
||||
$(foreach platform,$(DOTNET_PLATFORMS),$(DOTNET_DESTDIR)/Microsoft.$(platform).Sdk/targets) \
|
||||
|
@ -165,10 +164,6 @@ nupkgs/$(1)$(4).$(2).nupkg: $(TEMPLATED_FILES) $(WORKLOAD_TARGETS) $(3) package/
|
|||
@# Delete any versions of the nuget we're building
|
||||
$$(Q) rm -f nupkgs/$(1).*.nupkg
|
||||
$$(Q_PACK) $(DOTNET6) pack package/$(1)/package.csproj -p:VersionBand=$(DOTNET6_VERSION_BAND) --output "$$(dir $$@)" $(DOTNET_PACK_VERBOSITY) "/bl:$$@.binlog"
|
||||
@# Clean the local feed
|
||||
$$(Q_NUGET_DEL) if test -d $(DOTNET_FEED_DIR)/$(shell echo $(1) | tr A-Z a-z)/$(2); then nuget delete $(1) $(2) -source $(abspath $(DOTNET_FEED_DIR)) -NonInteractive $(NUGET_VERBOSITY); fi
|
||||
@# Add the nupkg to our local feed
|
||||
$$(Q_NUGET_ADD) nuget add "$$@" -source $(DOTNET_FEED_DIR) -NonInteractive $(NUGET_VERBOSITY)
|
||||
endef
|
||||
|
||||
define CreateWindowsNuGetTemplate
|
||||
|
@ -176,10 +171,6 @@ nupkgs/$(1).$(2).nupkg: $(3) $(WORKLOAD_TARGETS) package/$(1)/package.csproj $(w
|
|||
@# Delete any versions of the nuget we're building
|
||||
$$(Q) rm -f nupkgs/$(1).*.nupkg
|
||||
$$(Q_PACK) $(DOTNET6) pack package/$(1)/package.csproj --output "$$(dir $$@)" $(DOTNET_PACK_VERBOSITY) "/bl:$$@.binlog"
|
||||
@# Clean the local feed
|
||||
$$(Q_NUGET_DEL) if test -d $(DOTNET_FEED_DIR)/$(shell echo $(1) | tr A-Z a-z)/$(2); then nuget delete $(1) $(2) -source $(abspath $(DOTNET_FEED_DIR)) -NonInteractive $(NUGET_VERBOSITY); fi
|
||||
@# Add the nupkg to our local feed
|
||||
$$(Q_NUGET_ADD) nuget add "$$@" -source $(DOTNET_FEED_DIR) -NonInteractive $(NUGET_VERBOSITY)
|
||||
endef
|
||||
|
||||
# Create the NuGet packaging targets. It's amazing what make allows you to do...
|
||||
|
@ -359,10 +350,12 @@ $(foreach platform,$(DOTNET_WINDOWS_PLATFORMS),$(eval $(call CreateMsi,$(platfor
|
|||
|
||||
export DOTNETSDK_WORKLOAD_MANIFEST_ROOTS:=$(abspath ./Workloads)
|
||||
|
||||
.stamp-install-workloads: Makefile Workloads/NuGet.config $(WORKLOAD_TARGETS) $(RUNTIME_PACKS) $(REF_PACKS) $(SDK_PACKS) $(TEMPLATE_PACKS) $(WORKLOAD_PACKS)
|
||||
.stamp-install-workloads: Makefile $(WORKLOAD_TARGETS) $(RUNTIME_PACKS) $(REF_PACKS) $(SDK_PACKS) $(TEMPLATE_PACKS) $(WORKLOAD_PACKS)
|
||||
@# The microsoft.net.sdk.maui workload has a reference to the microsoft-ios-sdk-full workload, which has been renamed, so 'dotnet workload install' fails. Just remove the maui workload, we don't need it here.
|
||||
$(Q) rm -Rf $(DOTNET6_DIR)/sdk-manifests/6.0.100/microsoft.net.sdk.maui
|
||||
$(Q) cd Workloads && $(DOTNET6) workload install --skip-manifest-update \
|
||||
$(Q) $(DOTNET6) workload install --skip-manifest-update \
|
||||
--source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6/nuget/v3/index.json \
|
||||
--source $(DOTNET_NUPKG_DIR) --verbosity diag \
|
||||
$(foreach platform,$(DOTNET_PLATFORMS),$(shell echo $(platform) | tr A-Z a-z))
|
||||
$(Q) touch $@
|
||||
|
||||
|
@ -397,11 +390,8 @@ global.json: $(TOP)/global6.json
|
|||
$(TOP)/tests/dotnet/NuGet.config:
|
||||
$(Q) $(MAKE) -C $(TOP)/tests/dotnet NuGet.config
|
||||
|
||||
Workloads/NuGet.config: $(TOP)/tests/dotnet/NuGet.config
|
||||
$(Q) $(CP) $< $@
|
||||
|
||||
clean-local::
|
||||
$(Q) rm -Rf $(DOTNET_NUPKG_DIR) $(DOTNET_FEED_DIR)
|
||||
$(Q) rm -Rf $(DOTNET_NUPKG_DIR)
|
||||
$(Q) git clean -xfdq
|
||||
|
||||
.stamp-workaround-for-maccore-issue-2427: global.json $(TOP)/eng/Versions.props $(LOCAL_WORKLOAD_TARGETS)
|
||||
|
|
|
@ -85,10 +85,10 @@
|
|||
<KnownFrameworkReference Include="Microsoft.$(_PlatformName)"
|
||||
TargetFramework="net6.0"
|
||||
RuntimeFrameworkName="Microsoft.$(_PlatformName)"
|
||||
DefaultRuntimeFrameworkVersion="$(_ShortPackageVersion)"
|
||||
LatestRuntimeFrameworkVersion="$(_ShortPackageVersion)"
|
||||
DefaultRuntimeFrameworkVersion="**FromWorkload**"
|
||||
LatestRuntimeFrameworkVersion="**FromWorkload**"
|
||||
TargetingPackName="Microsoft.$(_PlatformName).Ref"
|
||||
TargetingPackVersion="$(_ShortPackageVersion)"
|
||||
TargetingPackVersion="**FromWorkload**"
|
||||
RuntimePackNamePatterns="Microsoft.$(_PlatformName).Runtime.**RID**"
|
||||
RuntimePackRuntimeIdentifiers="$(_RuntimePackRuntimeIdentifiers)"
|
||||
Profile="$(_PlatformName)"
|
||||
|
|
|
@ -6,7 +6,6 @@ include $(TOP)/Make.config
|
|||
# and to put any extracted packages in the 'packages' directory (to not clutter up ~/.nuget/packages)
|
||||
NuGet.config: $(TOP)/NuGet.config Makefile
|
||||
$(Q) $(CP) $< $@.tmp
|
||||
$(Q) nuget sources add -Name local-dotnet-feed -Source $(abspath $(DOTNET_FEED_DIR)) -ConfigFile $@.tmp
|
||||
ifdef CUSTOM_DOTNET
|
||||
$(Q) nuget sources add -Name dev-runtime-feed -Source $(abspath $(DOTNET_RUNTIME_PATH)/artifacts/packages/Release/Shipping) -ConfigFile $@.tmp
|
||||
endif
|
||||
|
|
Загрузка…
Ссылка в новой задаче