c # - Build .NET Standard Library 1.4 ved hjælp af .NET Framework 4.6.1 uden visuel studio

Indlæg af Hanne Mølgaard Plasc

Problem



Vi forsøger at bygge .NET Standard Library 1.4 Projekt ved hjælp af .NET Framework 4.6.1 ved hjælp af Command prompt uden visuel studio i Windows Server 2012 RC2 til Automation formål.


Jeg har installeret følgende på serveren,


.Net Framework 4.6.1
.Net Framework 4.6.1 Targeting pack
Microsoft Build Tools 2015


Dette .NET Standard Library Project siger ProjectA blev refereret med to andre .NET standard Library Project ProjectB og ProjectC.


Holder ProjectA som Startup Project


Når jeg forsøger at kompilere ProjectA efter dotnet restore ved hjælp af dotnet build cmd, får jeg følgende fejl,


C:DocumentProjectA>dotnet build

Project ProjectA (.NETStandard,Version=v1.4) will be compiled because 
expected outputs are missing

Compiling ProjectA for .NETStandard,Version=v1.4
C:Program Filesdotnetdotnet.exe compile-csc 
@C:DocumentProjectAobjDebug
etstandard1.4dotnet-compile.rsp returned 
Exit Code 1

C:DocumentProjectASample.cs(1,17): error CS0234: The type or namespace name 
'ProjectB' does not exist in the namespace 'XYZ' (are you missing an 
 assembly reference?)

C:DocumentProjectASample.cs(2,17): error CS0234: The type or namespace name 
'ProjectC' does not exist in the namespace 'XYZ' (are you missing an 
 assembly reference?)

Compilation failed.
0 Warning(s)
2 Error(s)


Hjælp mig venligst til at kompilere løsningen fra kommandoprompten.
Prøvekode:


using XYZ.ProjectB;
using XYZ.ProjectC;
using System;


namespace XYZ.ProjectA
{
    public class Sample : ISample
    {
        public Void GetMessage()
        {
            var s=XYZ.ProjectB.GetList();
            Console.Write("");      
        }
    }
}


Både ProjectB og Project C er også .Netstandard Lib

Bedste reference


Det lykkedes mig at løse ovenstående sag ved at bygge projektet ved hjælp af MSBuild


Som jeg nævnte tidligere, at efter de følgende rammer installeret i serveren,


 1. .Net Framework 4.6.1 
 2. .Net Framework 4.6.1 Targeting pack
 3. Microsoft Build Tools 201


Og jeg forsøger at bygge bærbare projekter, der målretter mod .NET Standard fra serveren, hvor Visual Studio ikke blev installeret, lykkedes det at kopiere de følgende filer og mapper fra en maskine, der har Visual Studio installeret til min build server.



  1. C: \ Programmer (x86) \ Microsoft SDKs \ Portable \ v14.0

  2. C: \ Programmer (x86) \ MSBuild \ Microsoft \ Portable

  3. C: \ Programmer (x86) \ ReferenceAssemblies \ Microsoft \ Framework.NETPortable

  4. C: \ Programmer (x86) \ MSBuild \ Microsoft \ VisualStudio \ v14.0 \ DotNet



Og installeret Microsoft .NET Portable Library Reference Assemblies 4.6 på serveren.


Så kaldte versionen af ​​MsBuild til at opbygge din løsning fra,


C:Program Files (x86)MSBuild14.0BinMsBuild.exe MySolution.sln 


Ovennævnte trin hjalp mig til at bygge .NET Standard Libarary Project uden at installere Visual Studio på build Server.


Jeg håber ovenstående oplysninger hjælper nogen!