2016-11-04 23 views
6

Visual Studio 14 (VS 2015) Güncelleştirmesi 3 kullanıyorum ve sunucu olarak Kestrel'i kullanarak bir REST API tabanlı .Net Core 1 oluşturmak istiyorum..NET Çekirdek .csproj Çıkış Yolu düzgün çalışmıyor

ben diğer projelerde olduğu gibi MSBuild kullanmak için eski .xproj yerine .Csproj kullanmak isterler. Bunu yapmak için tutorial they have'u kullandım.

Sorun, "OutputPath" ı "bin \ Debug" (örneğin Debug modu için) olarak tanımladığımda, Visual Studio projeyi oluşturur ve yapının sonuçlarını "bin \ Debug \\ bin \ Debug \ netcoreapp1" olarak ayarlar 0,0 \ win7-x64" .

.xproj'u kullanır ve oluşturursam, sonuçlar beklenen davranış olan "bin \ Debug \ netcoreapp1.0" adresinde depolanır.

Neler oluyor?

.Csproj:

<?xml version="1.0" encoding="utf-8"?> 
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup> 
    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath> 
    <BaseNuGetRuntimeIdentifier>win7</BaseNuGetRuntimeIdentifier> 
    <TargetFrameworkIdentifier>.NETCoreApp</TargetFrameworkIdentifier> 
    <TargetFrameworkVersion>v1.0</TargetFrameworkVersion> 
    <NoStdLib>true</NoStdLib> 
    <NoWarn>$(NoWarn);1701</NoWarn> 
    <ProjectGuid>{D21ABA46-65F9-4B47-882C-F9C0765052DD}</ProjectGuid> 
    <OutputType>Exe</OutputType> 
    <AppDesignerFolder>Properties</AppDesignerFolder> 
    <RootNamespace>MyAPP</RootNamespace> 
    <AssemblyName>MyAPP</AssemblyName> 
    <FileAlignment>512</FileAlignment> 
    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> 
    </PropertyGroup> 
    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> 
    <PlatformTarget>x64</PlatformTarget> 
    <DebugSymbols>true</DebugSymbols> 
    <DebugType>full</DebugType> 
    <Optimize>false</Optimize> 
    <IntermediateOutputPath>.\obj\Debug</IntermediateOutputPath> 
    <OutputPath>.\bin\Debug\</OutputPath> 
    <DefineConstants>DEBUG;TRACE</DefineConstants> 
    <ErrorReport>prompt</ErrorReport> 
    <WarningLevel>4</WarningLevel> 
    </PropertyGroup> 
    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> 
    <PlatformTarget>x64</PlatformTarget> 
    <DebugType>pdbonly</DebugType> 
    <Optimize>true</Optimize> 
    <OutputPath>.\bin\Release</OutputPath> 
    <DefineConstants>TRACE</DefineConstants> 
    <ErrorReport>prompt</ErrorReport> 
    <WarningLevel>4</WarningLevel> 
    </PropertyGroup> 
    <ItemGroup> 
    <Compile Include="src\**\*.cs" /> 
    </ItemGroup> 
    <ItemGroup> 
    <None Include="project.json" /> 
    <None Include="appsettings.json" /> 
    </ItemGroup> 
    <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> 
    <Import Project="$(VSToolsPath)\DotNet.Web\Microsoft.DotNet.Web.targets" Condition="'$(VSToolsPath)' != ''" /> 
    <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
     Other similar extension points exist, see Microsoft.Common.targets. 
    <Target Name="BeforeBuild"> 
    </Target> 
    <Target Name="AfterBuild"> 
    </Target> 
    --> 
    <PropertyGroup> 
    <!-- We don't use any of MSBuild's resolution logic for resolving the framework, so just set these two 
      properties to any folder that exists to skip the GetReferenceAssemblyPaths task (not target) and 
      to prevent it from outputting a warning (MSB3644). 
     --> 
    <_TargetFrameworkDirectories>$(MSBuildThisFileDirectory)</_TargetFrameworkDirectories> 
    <_FullFrameworkReferenceAssemblyPaths>$(MSBuildThisFileDirectory)</_FullFrameworkReferenceAssemblyPaths> 
    <!-- MSBuild thinks all EXEs need binding redirects, not so for CoreCLR! --> 
    <AutoUnifyAssemblyReferences>true</AutoUnifyAssemblyReferences> 
    <AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects> 
    <!-- Set up debug options to run with host, and to use the CoreCLR debug engine --> 
    <StartAction>Program</StartAction> 
    <StartProgram>$(TargetDir)</StartProgram> 
    <DebugEngines>{2E36F1D4-B23C-435D-AB41-18E608940038}</DebugEngines> 
    </PropertyGroup> 
</Project> 

project.json:

{ 
    "version": "1.0.0", 

    "buildOptions": { 
    "emitEntryPoint": true, 
    "preserveCompilationContext": true 
    }, 

    "dependencies": { 
    "Microsoft.NETCore.App": { 
     "version": "1.0.0", 
     "type": "build" 
    }, 
    "Microsoft.ApplicationInsights.AspNetCore": "1.0.0", 
    "Microsoft.AspNetCore.Mvc": "1.0.0", 
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0", 
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0", 
    "Microsoft.Extensions.Configuration.FileExtensions": "1.0.0", 
    "Microsoft.Extensions.Configuration.Json": "1.0.0", 
    "Microsoft.Extensions.Logging": "1.0.0", 
    "Microsoft.Extensions.Logging.Console": "1.0.0", 
    "Microsoft.Extensions.Logging.Debug": "1.0.0", 
    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0" 
    }, 

    "runtimes": { 
    "win7-x64": {}, 
    "ubuntu.14.04-x64": {}, 
    "osx.10.10-x64": {} 
    }, 

    "frameworks": { 
    "netcoreapp1.0": { 
     "imports": [ "dnxcore50", "portable-net452" ] 
    } 
    }, 

    "runtimeOptions": { 
    "configProperties": { 
     "System.GC.Server": true 
    } 
    }, 

    "publishOptions": { 
    "include": [ 
     "appsettings.json", 
     "web.config" 
    ] 
    }, 

    "scripts": { 
    "postpublish": [ "dotnet publish --publish-folder ./bin" ] 
    } 
} 
+0

yerine projenizi göç etmelidir el koşuyoruz çalıştı var üzerinde dosya taşıma 'dotnet migrate' arasında .json, – TerribleDev

+0

numaralı yeni sisteme bağlandı. Bu, Microsoft'un .csproj'a geri dönmesinden önce oldu. Cevabınız için zaten teşekkürler;) –

cevap

0

Kullanım <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>