[build] Create Microsoft.iOS.Windows.Sdk workload pack (#11251)
Converts the Microsoft.iOS.Windows.Sdk NuGet package into a proper [workload SDK pack][0]. The entry point for this pack has been changed, and it is now imported through the `WorkloadManifest.targets` file included in `Microsoft.NET.Workload.iOS`, rather than being imported directly from `Microsoft.iOS.Sdk`. Import ordering has otherwise changed slightly. The following files are now imported before the majority of the `Microsoft.iOS.Sdk` (and the majority of the .NET SDK targets): * Xamarin.iOS.Common.Before.props * Xamarin.iOS.Common.Before.targets After this the majority of the .NET SDK targets will load, followed by the `Microsoft.iOS.Sdk` targets. Finally, everything declared in the `<AfterMicrosoftNETSdkTargets/>` hook loads, which consists of: * Microsoft.iOS.Windows.Sdk.targets * tools/msbuild/* [0]: https://github.com/dotnet/designs/blob/main/accepted/2020/workloads/workload-manifest.md#sdk-packs Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
This commit is contained in:
Родитель
5de96fd9f8
Коммит
b88c3bb031
|
@ -32,7 +32,9 @@ $(foreach platform,$(DOTNET_PLATFORMS),$(eval $(call DefineTargets,$(platform)))
|
|||
|
||||
define DefineWindowsTargets
|
||||
$(1)_WINDOWS_NUGET_TARGETS = \
|
||||
$(DOTNET_DESTDIR)/Microsoft.$(1).Windows.Sdk/targets/Xamarin.Shared.Sdk.Before.targets \
|
||||
$(DOTNET_DESTDIR)/Microsoft.$(1).Windows.Sdk/Sdk/Sdk.props \
|
||||
$(DOTNET_DESTDIR)/Microsoft.$(1).Windows.Sdk/targets/Microsoft.$(1).Windows.Sdk.props \
|
||||
$(DOTNET_DESTDIR)/Microsoft.$(1).Windows.Sdk/targets/Microsoft.$(1).Windows.Sdk.targets \
|
||||
|
||||
endef
|
||||
$(foreach platform,$(DOTNET_WINDOWS_PLATFORMS),$(eval $(call DefineWindowsTargets,$(platform))))
|
||||
|
@ -52,6 +54,7 @@ DIRECTORIES += \
|
|||
$(foreach platform,$(DOTNET_PLATFORMS),$(DOTNET_PACKS_PATH)/Microsoft.$(platform).Ref) \
|
||||
$(foreach platform,$(DOTNET_PLATFORMS),$(DOTNET_TEMPLATE_PACKS_PATH)/Microsoft.$(platform).Templates) \
|
||||
$(TMP_PKG_DIR) \
|
||||
$(foreach platform,$(DOTNET_WINDOWS_PLATFORMS),$(DOTNET_DESTDIR)/Microsoft.$(platform).Windows.Sdk/Sdk) \
|
||||
$(foreach platform,$(DOTNET_WINDOWS_PLATFORMS),$(DOTNET_DESTDIR)/Microsoft.$(platform).Windows.Sdk/targets) \
|
||||
|
||||
$(DIRECTORIES):
|
||||
|
@ -59,7 +62,8 @@ $(DIRECTORIES):
|
|||
|
||||
CURRENT_HASH_LONG:=$(shell git log -1 --pretty=%H)
|
||||
|
||||
$(DOTNET_DESTDIR)/Microsoft.%: Microsoft.% | $(foreach platform,$(DOTNET_PLATFORMS),$(DOTNET_DESTDIR)/Microsoft.$(platform).Sdk/Sdk $(DOTNET_DESTDIR)/Microsoft.$(platform).Sdk/targets $(DOTNET_DESTDIR)/Microsoft.$(platform).Templates)
|
||||
$(DOTNET_DESTDIR)/Microsoft.%: Microsoft.% | $(foreach platform,$(DOTNET_PLATFORMS),$(DOTNET_DESTDIR)/Microsoft.$(platform).Sdk/Sdk $(DOTNET_DESTDIR)/Microsoft.$(platform).Sdk/targets $(DOTNET_DESTDIR)/Microsoft.$(platform).Templates) \
|
||||
$(foreach platform,$(DOTNET_WINDOWS_PLATFORMS),$(DOTNET_DESTDIR)/Microsoft.$(platform).Windows.Sdk/Sdk $(DOTNET_DESTDIR)/Microsoft.$(platform).Windows.Sdk/targets)
|
||||
$(Q) $(CP) $< $@
|
||||
|
||||
define CopyTargets
|
||||
|
@ -68,12 +72,6 @@ $$(DOTNET_DESTDIR)/Microsoft.$(1).Sdk/targets/%: targets/% | $$(DOTNET_DESTDIR)/
|
|||
endef
|
||||
$(foreach platform,$(DOTNET_PLATFORMS),$(eval $(call CopyTargets,$(platform))))
|
||||
|
||||
define CopyWindowsTargets
|
||||
$$(DOTNET_DESTDIR)/Microsoft.$(1).Windows.Sdk/targets/%: WindowsTargets/% | $$(DOTNET_DESTDIR)/Microsoft.$(1).Windows.Sdk/targets
|
||||
$$(Q) $$(CP) $$< $$@
|
||||
endef
|
||||
$(foreach platform,$(DOTNET_WINDOWS_PLATFORMS),$(eval $(call CopyWindowsTargets,$(platform))))
|
||||
|
||||
define VersionsTemplate
|
||||
targets/Microsoft.$(1).Sdk.Versions.props: targets/Microsoft.Sdk.Versions.template.props Makefile $(TOP)/Make.config.inc $(TOP)/.git/HEAD $(TOP)/.git/index
|
||||
$$(Q_GEN) sed \
|
||||
|
@ -108,7 +106,7 @@ endef
|
|||
$(foreach platform,$(DOTNET_PLATFORMS),$(eval $(call SupportedTargetPlatforms,$(platform))))
|
||||
|
||||
define WorkloadTargets
|
||||
Microsoft.NET.Workload.$(1)/WorkloadManifest.json: targets/WorkloadManifest.template.json Makefile $(TOP)/Make.config.inc $(TOP)/.git/HEAD $(TOP)/.git/index
|
||||
Microsoft.NET.Workload.$(1)/WorkloadManifest.json: $4 Makefile $(TOP)/Make.config.inc $(TOP)/.git/HEAD $(TOP)/.git/index
|
||||
$$(Q) rm -f $$@.tmp
|
||||
$$(Q_GEN) sed \
|
||||
-e "s/@VERSION@/$3/g" \
|
||||
|
@ -123,7 +121,8 @@ Microsoft.NET.Workload.$(1)/LICENSE: $(TOP)/LICENSE
|
|||
WORKLOAD_TARGETS += Microsoft.NET.Workload.$(1)/WorkloadManifest.json
|
||||
WORKLOAD_TARGETS += Microsoft.NET.Workload.$(1)/LICENSE
|
||||
endef
|
||||
$(foreach platform,$(DOTNET_PLATFORMS),$(eval $(call WorkloadTargets,$(platform),$(shell echo $(platform) | tr A-Z a-z),$($(platform)_NUGET_VERSION_NO_METADATA))))
|
||||
$(foreach platform,$(DOTNET_PLATFORMS),$(eval $(call WorkloadTargets,$(platform),$(shell echo $(platform) | tr A-Z a-z),$($(platform)_NUGET_VERSION_NO_METADATA), \
|
||||
$(if $(findstring $(platform),$(DOTNET_WINDOWS_PLATFORMS)),targets/WorkloadManifest.windows.template.json,targets/WorkloadManifest.template.json))))
|
||||
|
||||
TEMPLATED_FILES = \
|
||||
$(foreach platform,$(DOTNET_PLATFORMS),Microsoft.$(platform).Sdk/targets/Microsoft.$(platform).Sdk.Versions.props) \
|
||||
|
@ -167,7 +166,7 @@ endef
|
|||
|
||||
# Create the NuGet packaging targets. It's amazing what make allows you to do...
|
||||
$(foreach platform,$(DOTNET_PLATFORMS),$(eval $(call CreateNuGetTemplate,Microsoft.$(platform).Sdk,$($(platform)_NUGET_VERSION_NO_METADATA),$($(platform)_NUGET_TARGETS))))
|
||||
$(eval $(call CreateWindowsNuGetTemplate,Microsoft.iOS.Windows.Sdk,$(IOS_WINDOWS_NUGET_VERSION_NO_METADATA),$(IOS_WINDOWS_NUGET_TARGETS)))
|
||||
$(foreach platform,$(DOTNET_WINDOWS_PLATFORMS),$(eval $(call CreateWindowsNuGetTemplate,Microsoft.$(platform).Windows.Sdk,$(IOS_WINDOWS_NUGET_VERSION_NO_METADATA),$($(platform)_WINDOWS_NUGET_TARGETS))))
|
||||
$(foreach platform,$(DOTNET_PLATFORMS),$(eval $(call CreateNuGetTemplate,Microsoft.$(platform).Ref,$($(platform)_NUGET_VERSION_NO_METADATA))))
|
||||
$(foreach platform,$(DOTNET_PLATFORMS),$(eval $(call CreateNuGetTemplate,Microsoft.$(platform).Templates,$($(platform)_NUGET_VERSION_NO_METADATA))))
|
||||
$(foreach platform,$(DOTNET_PLATFORMS),$(eval $(call CreateNuGetTemplate,Microsoft.NET.Workload.$(platform),$($(platform)_NUGET_VERSION_NO_METADATA))))
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
<Project>
|
||||
<Import Project="Sdk.props" Sdk="Microsoft.iOS.Sdk" Condition="'$(TargetPlatformIdentifier)' == 'iOS'" />
|
||||
<Import Project="Sdk.props" Sdk="Microsoft.iOS.Windows.Sdk" Condition=" '$(TargetPlatformIdentifier)' == 'iOS' and $([MSBuild]::IsOSPlatform('windows'))" />
|
||||
</Project>
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<_PlatformName>iOS</_PlatformName>
|
||||
<!-- Used by Microsoft.iOS.Windows.Sdk -->
|
||||
<CoreiOSSdkDirectory>$(MSBuildThisFileDirectory)..\tools\msbuild\iOS\</CoreiOSSdkDirectory>
|
||||
</PropertyGroup>
|
||||
|
||||
<Import Project="Xamarin.Shared.Sdk.props" />
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildThisFileDirectory)..\targets\Microsoft.iOS.Windows.Sdk.props" />
|
||||
</Project>
|
|
@ -0,0 +1,14 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
|
||||
<Import Project="$(MSBuildThisFileDirectory)..\tools\msbuild\iOS\Xamarin.iOS.Common.Before.props" />
|
||||
<Import Project="$(MSBuildThisFileDirectory)..\tools\msbuild\iOS\Xamarin.iOS.Common.Before.targets" />
|
||||
|
||||
<PropertyGroup>
|
||||
<_DotNetRootRemoteDirectory Condition="$(_DotNetRootRemoteDirectory) == ''">/usr/local/share/dotnet/</_DotNetRootRemoteDirectory>
|
||||
<_XamarinSdkRemoteRootDirectory Condition="'$(_XamarinSdkRemoteRootDirectory)' == ''">$(_XamarinSdkRootDirectory.Replace('$(NetCoreRoot)', '$(_DotNetRootRemoteDirectory)'))</_XamarinSdkRemoteRootDirectory>
|
||||
<_MlaunchPath Condition="'$(_MlaunchPath)' == ''">$(_XamarinSdkRemoteRootDirectory)tools/bin/mlaunch</_MlaunchPath>
|
||||
<AfterMicrosoftNETSdkTargets>$(AfterMicrosoftNETSdkTargets);$(MSBuildThisFileDirectory)..\targets\Microsoft.iOS.Windows.Sdk.targets</AfterMicrosoftNETSdkTargets>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
|
||||
<Import Project="$(MSBuildThisFileDirectory)..\tools\msbuild\iOS\Xamarin.iOS.Common.After.props" />
|
||||
<Import Project="$(MSBuildThisFileDirectory)..\tools\msbuild\iOS\Xamarin.iOS.Common.After.targets" />
|
||||
|
||||
<!-- Note: The following pack files are not yet imported in .NET 6:
|
||||
|
||||
<Import Project="$(MSBuildThisFileDirectory)..\tools\msbuild\iOS\Xamarin.iOS.ObjCBinding.Common.After.props" />
|
||||
<Import Project="$(MSBuildThisFileDirectory)..\tools\msbuild\iOS\Xamarin.iOS.ObjCBinding.Common.After.targets" />
|
||||
<Import Project="$(MSBuildThisFileDirectory)..\tools\msbuild\iOS\Xamarin.iOS.ObjCBinding.Common.Before.targets" />
|
||||
<Import Project="$(MSBuildThisFileDirectory)..\tools\msbuild\iOS\Xamarin.iOS.ObjCBinding.CSharp.After.props" />
|
||||
<Import Project="$(MSBuildThisFileDirectory)..\tools\msbuild\iOS\Xamarin.iOS.ObjCBinding.CSharp.After.targets" />
|
||||
<Import Project="$(MSBuildThisFileDirectory)..\tools\msbuild\iOS\Xamarin.iOS.WatchApp.Common.After.targets" />
|
||||
|
||||
-->
|
||||
|
||||
</Project>
|
|
@ -1,10 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
|
||||
<PropertyGroup>
|
||||
<_DotNetRootRemoteDirectory Condition="$(_DotNetRootRemoteDirectory) == ''">/usr/local/share/dotnet/</_DotNetRootRemoteDirectory>
|
||||
<_XamarinSdkRemoteRootDirectory Condition="'$(_XamarinSdkRemoteRootDirectory)' == ''">$(_XamarinSdkRootDirectory.Replace('$(NetCoreRoot)', '$(_DotNetRootRemoteDirectory)'))</_XamarinSdkRemoteRootDirectory>
|
||||
<_MlaunchPath Condition="'$(_MlaunchPath)' == ''">$(_XamarinSdkRemoteRootDirectory)tools/bin/mlaunch</_MlaunchPath>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"version": 5,
|
||||
"workloads": {
|
||||
"microsoft-@PLATFORM_LOWERCASE@-sdk-full": {
|
||||
"description": "Microsoft @PLATFORM@ SDK",
|
||||
"packs": [
|
||||
"Microsoft.@PLATFORM@.Sdk",
|
||||
"Microsoft.@PLATFORM@.Windows.Sdk",
|
||||
"Microsoft.@PLATFORM@.Ref",
|
||||
"Microsoft.@PLATFORM@.Templates"
|
||||
]
|
||||
}
|
||||
},
|
||||
"packs": {
|
||||
"Microsoft.@PLATFORM@.Sdk": {
|
||||
"kind": "sdk",
|
||||
"version": "@VERSION@"
|
||||
},
|
||||
"Microsoft.@PLATFORM@.Windows.Sdk": {
|
||||
"kind": "sdk",
|
||||
"version": "@VERSION@"
|
||||
},
|
||||
"Microsoft.@PLATFORM@.Ref": {
|
||||
"kind": "framework",
|
||||
"version": "@VERSION@"
|
||||
},
|
||||
"Microsoft.@PLATFORM@.Templates": {
|
||||
"kind": "template",
|
||||
"version": "@VERSION@"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -11,6 +11,10 @@
|
|||
<PropertyGroup>
|
||||
<!-- Set to true when using the Microsoft.<platform>.Sdk NuGet. This is used by pre-existing/shared targets to tweak behavior depending on build system -->
|
||||
<UsingAppleNETSdk>true</UsingAppleNETSdk>
|
||||
<!-- This is the location of the Microsoft.<platform>.Sdk NuGet (/usr/local/share/dotnet/sdk/<version>/Sdks/Microsoft.[iOS/tvOS/watchOS/macOS].Sdk) -->
|
||||
<_XamarinSdkRootDirectory>$([MSBuild]::NormalizePath('$(MSBuildThisFileDirectory)', '..'))\</_XamarinSdkRootDirectory>
|
||||
<_XamarinTaskAssembly Condition="'$(_PlatformName)' != 'macOS'">$(_XamarinSdkRootDirectory)\tools\msbuild\iOS\Xamarin.iOS.Tasks.dll</_XamarinTaskAssembly>
|
||||
<_XamarinTaskAssembly Condition="'$(_PlatformName)' == 'macOS'">$(_XamarinSdkRootDirectory)\tools\msbuild\macOS\Xamarin.Mac.Tasks.dll</_XamarinTaskAssembly>
|
||||
<SuppressTrimAnalysisWarnings Condition=" '$(SuppressTrimAnalysisWarnings)' == '' ">true</SuppressTrimAnalysisWarnings>
|
||||
<AfterMicrosoftNETSdkTargets>$(AfterMicrosoftNETSdkTargets);$(MSBuildThisFileDirectory)Microsoft.$(_PlatformName).Sdk.targets</AfterMicrosoftNETSdkTargets>
|
||||
</PropertyGroup>
|
||||
|
|
|
@ -2,21 +2,10 @@
|
|||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- This is the location of the Microsoft.<platform>.Sdk NuGet (/usr/local/share/dotnet/sdk/<version>/Sdks/Microsoft.[iOS/tvOS/watchOS/macOS].Sdk) -->
|
||||
<_XamarinSdkRootDirectory>$([MSBuild]::NormalizePath('$(MSBuildThisFileDirectory)', '..'))\</_XamarinSdkRootDirectory>
|
||||
|
||||
<_XamarinTaskAssembly Condition="'$(_PlatformName)' != 'macOS'">$(_XamarinSdkRootDirectory)\tools\msbuild\iOS\Xamarin.iOS.Tasks.dll</_XamarinTaskAssembly>
|
||||
<_XamarinTaskAssembly Condition="'$(_PlatformName)' == 'macOS'">$(_XamarinSdkRootDirectory)\tools\msbuild\macOS\Xamarin.Mac.Tasks.dll</_XamarinTaskAssembly>
|
||||
|
||||
<!-- Use single-project MSBuild properties to generate the application manifest by default -->
|
||||
<GenerateApplicationManifest Condition="'$(GenerateApplicationManifest)' == ''">true</GenerateApplicationManifest>
|
||||
|
||||
<XamarinWindowsSdkDirectory Condition="'$(XamarinWindowsSdkDirectory)' == '' And '$(_PlatformName)' == 'iOS'">$(MSBuildThisFileDirectory.Replace('Microsoft.iOS.Sdk', 'Microsoft.iOS.Windows.Sdk'))</XamarinWindowsSdkDirectory>
|
||||
<XamarinWindowsSdkDirectory Condition="'$(XamarinWindowsSdkDirectory)' == '' And '$(_PlatformName)' == 'tvOS'">$(MSBuildThisFileDirectory.Replace('Microsoft.tvOS.Sdk', 'Microsoft.tvOS.Windows.Sdk'))</XamarinWindowsSdkDirectory>
|
||||
</PropertyGroup>
|
||||
|
||||
<Import Project="$(XamarinWindowsSdkDirectory)$(MSBuildThisFileName).Before.targets" Condition="Exists('$(XamarinWindowsSdkDirectory)$(MSBuildThisFileName).Before.targets')" />
|
||||
|
||||
<UsingTask TaskName="Xamarin.MacDev.Tasks.CompileNativeCode" AssemblyFile="$(_XamarinTaskAssembly)" />
|
||||
<UsingTask TaskName="Xamarin.MacDev.Tasks.LinkNativeCode" AssemblyFile="$(_XamarinTaskAssembly)" />
|
||||
|
||||
|
|
|
@ -17,15 +17,8 @@ Copyright (C) 2013-2016 Xamarin. All rights reserved.
|
|||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildThisFileDirectory)Xamarin.iOS.Common.props" />
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- Naming convention that relies on the fact that there will be a Microsoft.Windows.iOS.Sdk pack with the same version that the core SDK, on Windows installations only -->
|
||||
<WindowsiOSSdkDirectory>$(MSBuildThisFileDirectory.Replace('Microsoft.iOS.Sdk', 'Microsoft.iOS.Windows.Sdk'))</WindowsiOSSdkDirectory>
|
||||
</PropertyGroup>
|
||||
|
||||
<Import Project="$(MSBuildThisFileDirectory)$(MSBuildThisFileName).Before.targets"
|
||||
Condition="Exists('$(MSBuildThisFileDirectory)$(MSBuildThisFileName).Before.targets')"/>
|
||||
<Import Project="$(WindowsiOSSdkDirectory)$(MSBuildThisFileName).Before.targets"
|
||||
Condition="Exists('$(WindowsiOSSdkDirectory)$(MSBuildThisFileName).Before.targets')"/>
|
||||
|
||||
<!-- *** Code Analysis Setup *** -->
|
||||
<!-- Library projects aren't supported, if we enable Xamarin.Analysis on them, we'll need to revisit the rules and deactivate some (e.g XIA0002). -->
|
||||
|
@ -1165,7 +1158,5 @@ Copyright (C) 2013-2016 Xamarin. All rights reserved.
|
|||
|
||||
<Import Project="$(MSBuildThisFileDirectory)$(MSBuildThisFileName).After.targets"
|
||||
Condition="Exists('$(MSBuildThisFileDirectory)$(MSBuildThisFileName).After.targets')"/>
|
||||
<Import Project="$(WindowsiOSSdkDirectory)$(MSBuildThisFileName).After.targets"
|
||||
Condition="Exists('$(WindowsiOSSdkDirectory)$(MSBuildThisFileName).After.targets')"/>
|
||||
|
||||
</Project>
|
||||
|
|
|
@ -13,9 +13,8 @@ Copyright (C) 2011-2013 Xamarin. All rights reserved.
|
|||
-->
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<CoreiOSSdkDirectory>$(MSBuildThisFileDirectory)</CoreiOSSdkDirectory>
|
||||
<!-- Naming convention that relies on the fact that the Microsoft.iOS.Sdk pack exists with the same version that the Windows SDK (.net6 only) -->
|
||||
<CoreiOSSdkDirectory Condition="$(MSBuildThisFileDirectory.Contains('Microsoft.iOS.Windows.Sdk'))">$(MSBuildThisFileDirectory.Replace('Microsoft.iOS.Windows.Sdk', 'Microsoft.iOS.Sdk'))</CoreiOSSdkDirectory>
|
||||
<!-- $(CoreiOSSdkDirectory) is defined in Microsoft.iOS.Sdk.targets, from Microsoft.iOS.Sdk package -->
|
||||
<CoreiOSSdkDirectory Condition=" '$(CoreiOSSdkDirectory)' == '' and '$(UsingAppleNETSdk)' != 'true' ">$(MSBuildThisFileDirectory)</CoreiOSSdkDirectory>
|
||||
<!-- Property originally defined in Xamarin.Messaging.Build.targets, from Xamarin.Messaging.Build.Client package -->
|
||||
<MessagingBuildClientAssemblyFile>$(CoreiOSSdkDirectory)Xamarin.iOS.Tasks.dll</MessagingBuildClientAssemblyFile>
|
||||
<MessagingAgentsDirectory>$(MSBuildThisFileDirectory)</MessagingAgentsDirectory>
|
||||
|
|
Загрузка…
Ссылка в новой задаче