diff --git a/README.md b/README.md index a9338a1..83b2c1d 100644 --- a/README.md +++ b/README.md @@ -47,10 +47,16 @@ Or pin the SDK version in `global.json`: ``` src/ - nanoFramework.Sdk/ SDK NuGet package (Sdk.props / Sdk.targets) + nanoFramework.NET.Sdk/ SDK NuGet package (Sdk.props / Sdk.targets) nanoFramework.Tools.BuildTasks/ Custom MSBuild tasks (resource gen, binary output, etc.) ``` +## Tools + +The `dotnet nano` umbrella CLI and the `nano-migrate` project migrator (with the companion +SDK-migration skill) live in the [nanoframework/nf-tools](https://github.com/nanoframework/nf-tools) +repository, under `tools/nano` and `tools/migrate`. + ## Development ```bash diff --git a/azure-pipelines.yml b/azure-pipelines.yml index eada5eb..3243f19 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -41,177 +41,207 @@ stages: ######################## - stage: Build jobs: - - job: Build_SDK - pool: - vmImage: 'windows-latest' - - variables: - - group: sign-client-credentials - - name: buildPlatform - value: 'Any CPU' - - name: buildConfiguration - value: 'Release' - - name: solution - value: 'nanoFramework.NET.Sdk.sln' - - steps: - - checkout: self - submodules: true - fetchDepth: 0 - - - script: | - git config --global user.email nanoframework@outlook.com - git config --global user.name nfbot - git config --global core.autocrlf true - displayName: Setup git identity - - - template: install-nbgv-tool.yml@templates - - # waiting for project to be public to enable SonarCloud analysis - # - task: SonarCloudPrepare@3 - # condition: >- - # and( - # succeeded(), - # eq(variables['StartReleaseCandidate'], false), - # not(startsWith(variables['Build.SourceBranch'], 'refs/tags/v')), - # not(${{ parameters.skipSonarCloudAnalysis }}) - # ) - # displayName: 'Prepare analysis on SonarCloud' - # inputs: - # SonarCloud: 'sonarcloud-$(System.TeamProject)' - # organization: 'nanoframework' - # scannerMode: 'dotnet' - # projectKey: 'nanoframework_net-sdk' - # extraProperties: | - # sonar.exclusions=**/obj/**,**/*.dll - # sonar.cs.vscoveragexml.reportsPaths=$(Agent.TempDirectory)/**/**.coverage - # sonar.cs.vstest.reportsPaths=$(Agent.TempDirectory)/**/**.trx - # sonar.scanner.skipJreProvisioning=true - - - template: install-nuget.yml@templates - - - task: DotNetCoreCLI@2 - displayName: Build - inputs: - command: 'build' - projects: '$(solution)' - arguments: '--configuration $(buildConfiguration) /p:PublicRelease=true' - - # waiting for project to be public to enable SonarCloud analysis - # - task: SonarCloudAnalyze@3 - # condition: >- - # and( - # succeeded(), - # eq(variables['StartReleaseCandidate'], false), - # not(startsWith(variables['Build.SourceBranch'], 'refs/tags/v')) - # ) - # displayName: 'Run Code Analysis' - # continueOnError: true - - # waiting for project to be public to enable SonarCloud analysis - # - task: SonarCloudPublish@3 - # condition: >- - # and( - # succeeded(), - # eq(variables['StartReleaseCandidate'], false), - # not(startsWith(variables['Build.SourceBranch'], 'refs/tags/v')) - # ) - # displayName: 'Publish Quality Gate Result' - # continueOnError: true - - - task: DotNetCoreCLI@2 - displayName: Install Sign Client CLI - condition: >- - and( - succeeded(), - eq(variables['StartReleaseCandidate'], false), - not(startsWith(variables['Build.SourceBranch'], 'refs/tags/v')) - ) - inputs: - command: custom - custom: tool - arguments: install --tool-path . sign --version 0.9.1-beta.23530.1 - - - pwsh: | - .\sign code azure-key-vault ` - "**/nanoFramework.Tools.BuildTasks.*" ` - --base-directory "$(Build.SourcesDirectory)/nanoFramework.NET.Sdk/build/Release" ` - --description "$(Build.Repository.Name)" ` - --description-url "https://github.com/$(Build.Repository.Name)" ` - --azure-key-vault-tenant-id "$(SignTenantId)" ` - --azure-key-vault-client-id "$(SignClientId)" ` - --azure-key-vault-client-secret "$(SignClientSecret)" ` - --azure-key-vault-certificate "$(SignKeyVaultCertificate)" ` - --azure-key-vault-url "$(SignKeyVaultUrl)" ` - --timestamp-url http://timestamp.digicert.com - displayName: Sign DLLs - continueOnError: false - condition: >- - and( - succeeded(), - eq(variables['StartReleaseCandidate'], false), - not(startsWith(variables['Build.SourceBranch'], 'refs/tags/v')) - ) + - job: Build_SDK + pool: + vmImage: 'windows-latest' - - task: DotNetCoreCLI@2 - displayName: Pack - inputs: - command: 'pack' - packagesToPack: '**/src/nanoFramework.NET.Sdk.csproj' - versioningScheme: 'off' - arguments: '--configuration $(buildConfiguration) /p:PublicRelease=true --output $(Build.ArtifactStagingDirectory)' - - - pwsh: | - .\sign code azure-key-vault ` - "**/*.nupkg" ` - --base-directory "$(Build.ArtifactStagingDirectory)" ` - --description "$(Build.Repository.Name)" ` - --description-url "https://github.com/$(Build.Repository.Name)" ` - --azure-key-vault-tenant-id "$(SignTenantId)" ` - --azure-key-vault-client-id "$(SignClientId)" ` - --azure-key-vault-client-secret "$(SignClientSecret)" ` - --azure-key-vault-certificate "$(SignKeyVaultCertificate)" ` - --azure-key-vault-url "$(SignKeyVaultUrl)" ` - --timestamp-url http://timestamp.digicert.com - displayName: Sign NuGet package - continueOnError: true - condition: >- - and( - succeeded(), - eq(variables['StartReleaseCandidate'], false), - not(startsWith(variables['Build.SourceBranch'], 'refs/tags/v')) - ) + variables: + - group: sign-client-credentials + - name: buildPlatform + value: 'Any CPU' + - name: buildConfiguration + value: 'Release' + - name: solution + value: 'nanoFramework.NET.Sdk.sln' + + steps: + - checkout: self + submodules: true + fetchDepth: 0 + + - script: | + git config --global user.email nanoframework@outlook.com + git config --global user.name nfbot + git config --global core.autocrlf true + displayName: Setup git identity + + - template: install-nbgv-tool.yml@templates + + # waiting for project to be public to enable SonarCloud analysis + # - task: SonarCloudPrepare@3 + # condition: >- + # and( + # succeeded(), + # eq(variables['StartReleaseCandidate'], false), + # not(startsWith(variables['Build.SourceBranch'], 'refs/tags/v')), + # not(${{ parameters.skipSonarCloudAnalysis }}) + # ) + # displayName: 'Prepare analysis on SonarCloud' + # inputs: + # SonarCloud: 'sonarcloud-$(System.TeamProject)' + # organization: 'nanoframework' + # scannerMode: 'dotnet' + # projectKey: 'nanoframework_net-sdk' + # extraProperties: | + # sonar.exclusions=**/obj/**,**/*.dll + # sonar.cs.vscoveragexml.reportsPaths=$(Agent.TempDirectory)/**/**.coverage + # sonar.cs.vstest.reportsPaths=$(Agent.TempDirectory)/**/**.trx + # sonar.scanner.skipJreProvisioning=true - - task: PublishPipelineArtifact@1 - displayName: Publish NuGet package - inputs: - targetPath: '$(Build.ArtifactStagingDirectory)' - artifactName: 'NuGetPackage' - artifactType: 'pipeline' - - - task: NuGetCommand@2 - condition: >- - and( - succeeded(), - eq(variables['System.PullRequest.PullRequestId'], ''), - not(startsWith(variables['Build.SourceBranch'], 'refs/pull/')), - eq(variables['StartReleaseCandidate'], false), - not(startsWith(variables['Build.SourceBranch'], 'refs/tags/v')) + - template: install-nuget.yml@templates + + - task: DotNetCoreCLI@2 + displayName: Build + inputs: + command: 'build' + projects: '$(solution)' + arguments: '--configuration $(buildConfiguration) /p:PublicRelease=true' + + # waiting for project to be public to enable SonarCloud analysis + # - task: SonarCloudAnalyze@3 + # condition: >- + # and( + # succeeded(), + # eq(variables['StartReleaseCandidate'], false), + # not(startsWith(variables['Build.SourceBranch'], 'refs/tags/v')) + # ) + # displayName: 'Run Code Analysis' + # continueOnError: true + + # waiting for project to be public to enable SonarCloud analysis + # - task: SonarCloudPublish@3 + # condition: >- + # and( + # succeeded(), + # eq(variables['StartReleaseCandidate'], false), + # not(startsWith(variables['Build.SourceBranch'], 'refs/tags/v')) + # ) + # displayName: 'Publish Quality Gate Result' + # continueOnError: true + + - task: DotNetCoreCLI@2 + displayName: Install Sign Client CLI + condition: >- + and( + succeeded(), + eq(variables['StartReleaseCandidate'], false), + not(startsWith(variables['Build.SourceBranch'], 'refs/tags/v')) + ) + inputs: + command: custom + custom: tool + arguments: install --tool-path . sign --version 0.9.1-beta.23530.1 + + - pwsh: | + .\sign code azure-key-vault ` + "**/nanoFramework.Tools.BuildTasks.*" ` + --base-directory "$(Build.SourcesDirectory)/nanoFramework.NET.Sdk/build/Release" ` + --description "$(Build.Repository.Name)" ` + --description-url "https://github.com/$(Build.Repository.Name)" ` + --azure-key-vault-tenant-id "$(SignTenantId)" ` + --azure-key-vault-client-id "$(SignClientId)" ` + --azure-key-vault-client-secret "$(SignClientSecret)" ` + --azure-key-vault-certificate "$(SignKeyVaultCertificate)" ` + --azure-key-vault-url "$(SignKeyVaultUrl)" ` + --timestamp-url http://timestamp.digicert.com + displayName: Sign DLLs + continueOnError: false + condition: >- + and( + succeeded(), + eq(variables['StartReleaseCandidate'], false), + not(startsWith(variables['Build.SourceBranch'], 'refs/tags/v')) + ) + + - task: DotNetCoreCLI@2 + displayName: Pack + inputs: + command: 'pack' + packagesToPack: '**/src/nanoFramework.NET.Sdk.csproj' + versioningScheme: 'off' + arguments: '--configuration $(buildConfiguration) /p:PublicRelease=true --output $(Build.ArtifactStagingDirectory)' + + - pwsh: | + .\sign code azure-key-vault ` + "**/*.nupkg" ` + --base-directory "$(Build.ArtifactStagingDirectory)" ` + --description "$(Build.Repository.Name)" ` + --description-url "https://github.com/$(Build.Repository.Name)" ` + --azure-key-vault-tenant-id "$(SignTenantId)" ` + --azure-key-vault-client-id "$(SignClientId)" ` + --azure-key-vault-client-secret "$(SignClientSecret)" ` + --azure-key-vault-certificate "$(SignKeyVaultCertificate)" ` + --azure-key-vault-url "$(SignKeyVaultUrl)" ` + --timestamp-url http://timestamp.digicert.com + displayName: Sign NuGet package + continueOnError: true + condition: >- + and( + succeeded(), + eq(variables['StartReleaseCandidate'], false), + not(startsWith(variables['Build.SourceBranch'], 'refs/tags/v')) + ) + + - task: PublishPipelineArtifact@1 + displayName: Publish NuGet package + inputs: + targetPath: '$(Build.ArtifactStagingDirectory)' + artifactName: 'NuGetPackage' + artifactType: pipeline + + - task: PowerShell@2 + displayName: Create NuGet config for SmokeTest + inputs: + targetType: inline + script: | + $nugetConfig = @( + '' + '' + ' ' + ' ' + ' ' + ' ' + ' ' + '' ) - continueOnError: true - displayName: Push NuGet package to NuGet - inputs: - command: push - nuGetFeedType: external - allowPackageConflicts: true - packagesToPush: '$(Build.ArtifactStagingDirectory)/*.nupkg' - publishFeedCredentials: 'NuGet-$(System.TeamProject)' + $nugetConfig | Set-Content -Path "$(Build.SourcesDirectory)/test/SmokeTest/NuGet.Azdo.Config" + + - task: DotNetCoreCLI@2 + displayName: Restore SmokeTest + inputs: + command: 'restore' + projects: 'test/SmokeTest/SmokeTest.csproj' + feedsToUse: 'config' + nugetConfigPath: '$(Build.SourcesDirectory)/test/SmokeTest/NuGet.Azdo.Config' + - task: DotNetCoreCLI@2 + displayName: Build SmokeTest + inputs: + command: 'build' + projects: 'test/SmokeTest/SmokeTest.csproj' + arguments: '--configuration $(buildConfiguration) --no-restore' + + - task: NuGetCommand@2 + condition: >- + and( + succeeded(), + eq(variables['System.PullRequest.PullRequestId'], ''), + not(startsWith(variables['Build.SourceBranch'], 'refs/pull/')), + eq(variables['StartReleaseCandidate'], false), + not(startsWith(variables['Build.SourceBranch'], 'refs/tags/v')) + ) + continueOnError: true + displayName: Push NuGet package to NuGet + inputs: + command: push + nuGetFeedType: external + allowPackageConflicts: true + packagesToPush: '$(Build.ArtifactStagingDirectory)/*.nupkg' + publishFeedCredentials: 'NuGet-$(System.TeamProject)' # report build failure to Discord - stage: Report_Build_Failure - dependsOn: - - Build + dependsOn: Build condition: failed('Build') jobs: diff --git a/src/nanoFramework.NET.Sdk/Sdk/Rules/NanoDebugger.xaml b/src/nanoFramework.NET.Sdk/Sdk/Rules/NanoDebugger.xaml new file mode 100644 index 0000000..9482dc1 --- /dev/null +++ b/src/nanoFramework.NET.Sdk/Sdk/Rules/NanoDebugger.xaml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/nanoFramework.NET.Sdk/Sdk/Sdk.props b/src/nanoFramework.NET.Sdk/Sdk/Sdk.props index 5df4567..6fb2ede 100644 --- a/src/nanoFramework.NET.Sdk/Sdk/Sdk.props +++ b/src/nanoFramework.NET.Sdk/Sdk/Sdk.props @@ -1,31 +1,35 @@ - netnano1.0 - - - true - - net - - - $(NoWarn);NU1701 + full @@ -34,7 +38,9 @@ - + + + <_NfSdkDir>$(MSBuildThisFileDirectory) @@ -42,42 +48,10 @@ - - - - - .NETnanoFramework - v1.0 - .NETnanoFramework,Version=$(TargetFrameworkVersion) - .NET nanoFramework 1.0 - .NETnanoFramework,Version=$(TargetFrameworkVersion) - - - - + + - - 13.0 - - - true - true - false - - - false - true - - - true - - - <_TargetFrameworkDirectories>$(_NfSdkDir) - <_FullFrameworkReferenceAssemblyPaths>$(_NfSdkDir) - + @@ -90,47 +64,13 @@ true - - - - - - - - - - - false - false - - - - - $(ProjectDir)Stubs - - - - - - 3.0.29 - - - - - diff --git a/src/nanoFramework.NET.Sdk/Sdk/Sdk.targets b/src/nanoFramework.NET.Sdk/Sdk/Sdk.targets index 27a0451..6ba18ce 100644 --- a/src/nanoFramework.NET.Sdk/Sdk/Sdk.targets +++ b/src/nanoFramework.NET.Sdk/Sdk/Sdk.targets @@ -1,17 +1,27 @@ - + + + + - $(DefineConstants);NETNANO1_0 + $(DefineConstants);NETNANO1_0;NANOFRAMEWORK_1_0 @@ -36,29 +46,6 @@ $(ProjectDir)coreAssembly.rsp - - - - - - - true - true - true - true - true - - - false - false - false - false - false - - - - @@ -78,18 +65,19 @@ - + + + + - - - + - - - $(TargetName) - $(TargetName) - $(NanoGenerateStubsDirectory)\$(NanoGenerateStubsRootName) - + + + + + + @@ -129,336 +117,4 @@ $(CommandLineArgsForDesignTimeEvaluation) -define:$(DefineConstants) - - - - - <_NfSdkTasksDir Condition="'$(MSBuildRuntimeType)' == 'Core'">$(_NfSdkRoot)tasks\net8.0\ - <_NfSdkTasksDir Condition="'$(MSBuildRuntimeType)' != 'Core'">$(_NfSdkRoot)tasks\net472\ - - - - - - - - - - - - - - - - <_NfMdpTasksTFM Condition="'$(MSBuildRuntimeType)' == 'Core'">net6.0 - <_NfMdpTasksTFM Condition="'$(_NfMdpTasksTFM)' == ''">net472 - - <_NfMdpTasksDir Condition="'$(NF_MDP_MSBUILDTASK_PATH)' == '' and '$(DisableNanoFrameworkMDP)' != 'true' and '$(PkgnanoFramework_Tools_MetadataProcessor_MsBuildTask)' != ''">$(PkgnanoFramework_Tools_MetadataProcessor_MsBuildTask)\lib\$(_NfMdpTasksTFM)\ - <_NfMdpTasksDir Condition="'$(NF_MDP_MSBUILDTASK_PATH)' != ''">$(NF_MDP_MSBUILDTASK_PATH)\ - - - - - - - - - $(StartProgram) - $(ProjectDir)$(IntermediateOutputPath)$(TargetName) - $(OutDir)$(TargetName) - - - - - - - Compile;CopyToOutDir - - - BuildOnlySettings; - PrepareForBuild; - PreBuildEvent; - ResolveReferences; - PrepareResources; - ResolveKeySource; - Compile; - GenerateSerializationAssemblies; - CreateSatelliteAssemblies; - GetTargetPath; - PrepareForRun; - IncrementalClean; - MetaDataProcessor; - PostBuildEvent - - - - MetaDataProcessor; - CopyFilesToOutputDirectory; - CopyNanoFrameworkFiles; - CopyBackNanoFrameworkDlls - - - - PrepareResourceNames; - ResGen; - CompileLicxFiles; - NanoResourceGenerator - - - - BeforeResolveReferences; - ResolveProjectReferences; - ResolveAssemblyReferences; - ResolveRuntimeDependencies; - AfterResolveReferences - - - - - - - - $(CoreBuildDependsOn);MetaDataProcessorCompile - $(PrepareResourcesDependsOn);NanoResourceGenerator - $(CleanDependsOn);NanoCLR_CleanExtraFiles - $(ResolveReferencesDependsOn);ResolveRuntimeDependencies - $(CoreBuildDependsOn);NFMDP_CreateDatabaseAndDependencyMap - true - - $(ProjectDir)$(IntermediateOutputPath)$(TargetFileName) - $(ProjectDir)$(IntermediateOutputPath)$(TargetName).pe - $(ProjectDir)$(IntermediateOutputPath)$(TargetName) - $(ProjectDir)$(IntermediateOutputPath)$(TargetName).strings - $(ProjectDir)$(IntermediateOutputPath)$(TargetName)_exports.txt - $(ProjectDir)$(IntermediateOutputPath)$(TargetName)_dependency_map.xml - $(AssemblyName) - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $(NanoGenerateSkeletonProjectName) - $(NanoGenerateStubsRootName) - $(NanoGenerateSkeletonFile) - false - - - - - - - - - - - - - - - - - - - - - $(NanoGenerateSkeletonProjectName) - $(NanoGenerateStubsRootName) - $(NanoGenerateSkeletonFile) - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/nanoFramework.NET.Sdk/Sdk/nanoFramework.Capabilities.targets b/src/nanoFramework.NET.Sdk/Sdk/nanoFramework.Capabilities.targets new file mode 100644 index 0000000..e8a9851 --- /dev/null +++ b/src/nanoFramework.NET.Sdk/Sdk/nanoFramework.Capabilities.targets @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + Project + + + + diff --git a/src/nanoFramework.NET.Sdk/Sdk/nanoFramework.Mdp.targets b/src/nanoFramework.NET.Sdk/Sdk/nanoFramework.Mdp.targets new file mode 100644 index 0000000..0d20ba8 --- /dev/null +++ b/src/nanoFramework.NET.Sdk/Sdk/nanoFramework.Mdp.targets @@ -0,0 +1,410 @@ + + + + + + + + false + false + + + + + $(ProjectDir)Stubs + + + + + + + 4.0.0-preview.98 + + + + + + + + + + + + true + true + true + true + true + + + false + false + false + false + false + + + + + + + + $(TargetName) + $(TargetName) + $(NanoGenerateStubsDirectory)\$(NanoGenerateStubsRootName) + + + + + + + <_NfSdkTasksDir Condition="'$(MSBuildRuntimeType)' == 'Core'">$(_NfSdkRoot)tasks\net8.0\ + <_NfSdkTasksDir Condition="'$(MSBuildRuntimeType)' != 'Core'">$(_NfSdkRoot)tasks\net472\ + + + + + + + + + + + + + + + + <_NfMdpTasksTFM Condition="'$(MSBuildRuntimeType)' == 'Core'">net8.0 + <_NfMdpTasksTFM Condition="'$(_NfMdpTasksTFM)' == ''">net472 + + <_NfMdpTasksDir Condition="'$(NF_MDP_MSBUILDTASK_PATH)' == '' and '$(DisableNanoFrameworkMDP)' != 'true' and '$(PkgnanoFramework_Tools_MetadataProcessor_MsBuildTask)' != ''">$(PkgnanoFramework_Tools_MetadataProcessor_MsBuildTask)\lib\$(_NfMdpTasksTFM)\ + <_NfMdpTasksDir Condition="'$(NF_MDP_MSBUILDTASK_PATH)' != ''">$(NF_MDP_MSBUILDTASK_PATH)\ + + + + + + + + + $(StartProgram) + $(ProjectDir)$(IntermediateOutputPath)$(TargetName) + $(OutDir)$(TargetName) + + + + + + + Compile;CopyToOutDir + + + BuildOnlySettings; + PrepareForBuild; + PreBuildEvent; + ResolveReferences; + PrepareResources; + ResolveKeySource; + Compile; + GenerateSerializationAssemblies; + CreateSatelliteAssemblies; + GetTargetPath; + PrepareForRun; + IncrementalClean; + MetaDataProcessor; + PostBuildEvent + + + + MetaDataProcessor; + CopyFilesToOutputDirectory; + CopyNanoFrameworkFiles; + CopyBackNanoFrameworkDlls + + + + PrepareResourceNames; + ResGen; + CompileLicxFiles; + NanoResourceGenerator + + + + BeforeResolveReferences; + ResolveProjectReferences; + ResolveAssemblyReferences; + ResolveRuntimeDependencies; + AfterResolveReferences + + + + + + + + $(CoreBuildDependsOn);MetaDataProcessorCompile + $(PrepareResourcesDependsOn);NanoResourceGenerator + $(CleanDependsOn);NanoCLR_CleanExtraFiles + $(ResolveReferencesDependsOn);ResolveRuntimeDependencies + $(CoreBuildDependsOn);NFMDP_CreateDatabaseAndDependencyMap + true + + $(ProjectDir)$(IntermediateOutputPath)$(TargetFileName) + $(ProjectDir)$(IntermediateOutputPath)$(TargetName).pe + $(ProjectDir)$(IntermediateOutputPath)$(TargetName) + $(ProjectDir)$(IntermediateOutputPath)$(TargetName).strings + $(ProjectDir)$(IntermediateOutputPath)$(TargetName)_exports.txt + $(ProjectDir)$(IntermediateOutputPath)$(TargetName)_dependency_map.xml + $(AssemblyName) + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $(NanoGenerateSkeletonProjectName) + $(NanoGenerateStubsRootName) + $(NanoGenerateSkeletonFile) + false + + + + + + + + + + + + + + + + + + + + + $(NanoGenerateSkeletonProjectName) + $(NanoGenerateStubsRootName) + $(NanoGenerateSkeletonFile) + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/nanoFramework.NET.Sdk/Sdk/nanoFramework.Tfm.props b/src/nanoFramework.NET.Sdk/Sdk/nanoFramework.Tfm.props new file mode 100644 index 0000000..3696813 --- /dev/null +++ b/src/nanoFramework.NET.Sdk/Sdk/nanoFramework.Tfm.props @@ -0,0 +1,72 @@ + + + + + + + + netnano1.0 + + + true + + + net + + + $(NoWarn);NU1701 + + + + + + + + .NETnanoFramework + v1.0 + .NETnanoFramework,Version=$(TargetFrameworkVersion) + .NET nanoFramework 1.0 + .NETnanoFramework,Version=$(TargetFrameworkVersion) + + + + + + + 13.0 + + + true + true + false + + + false + true + + + true + + + <_TargetFrameworkDirectories>$(_NfSdkDir) + <_FullFrameworkReferenceAssemblyPaths>$(_NfSdkDir) + + + diff --git a/src/nanoFramework.NET.Sdk/nanoFramework.NET.Sdk.csproj b/src/nanoFramework.NET.Sdk/nanoFramework.NET.Sdk.csproj index 7f6b522..334a3c8 100644 --- a/src/nanoFramework.NET.Sdk/nanoFramework.NET.Sdk.csproj +++ b/src/nanoFramework.NET.Sdk/nanoFramework.NET.Sdk.csproj @@ -56,6 +56,11 @@ Sdk/ Sdk.props Sdk.targets + nanoFramework.Tfm.props + nanoFramework.Mdp.targets + nanoFramework.Capabilities.targets + Rules/ + NanoDebugger.xaml tasks/ net472/ nanoFramework.Tools.BuildTasks.dll @@ -73,10 +78,18 @@ \ - + + + + + + + + + diff --git a/src/nanoFramework.Tools.BuildTasks/nanoFramework.Tools.BuildTasks.csproj b/src/nanoFramework.Tools.BuildTasks/nanoFramework.Tools.BuildTasks.csproj index 27ae288..9a1558e 100644 --- a/src/nanoFramework.Tools.BuildTasks/nanoFramework.Tools.BuildTasks.csproj +++ b/src/nanoFramework.Tools.BuildTasks/nanoFramework.Tools.BuildTasks.csproj @@ -9,8 +9,12 @@ - - + + compile; build; native; contentfiles; analyzers; buildtransitive + + + compile; build; native; contentfiles; analyzers; buildtransitive + diff --git a/test/SmokeTest/NuGet.Config b/test/SmokeTest/NuGet.Config index c847b9c..1339017 100644 --- a/test/SmokeTest/NuGet.Config +++ b/test/SmokeTest/NuGet.Config @@ -2,7 +2,7 @@ - +