eri*_*dem 5 c# msbuild visual-studio .net-core visual-studio-2017
我正在使用随VS2017 RC一起发布的新MSBuild 15来编译和打包多目标项目.
恢复:msbuild /t:restore mysolution.sln
正常工作.
构建:msbuild /p:Configuration=Release mylibrary.csproj
正常工作并生成:
+ bin/Release
+ netstandard1.4
- mylibrary.dll
+ net452
- mylibrary.dll
Run Code Online (Sandbox Code Playgroud)
但是当我打包时:msbuild /t:pack /p:Configuration=Release /p:IncludeSymbols=true mylibrary.csproj
结构与之前的版本不匹配,看起来像:
+ bin/Release
+ netstandard1.4
- mylibrary.pdb
+ net452
- mylibrary.pdb
- mylibrary.dll
Run Code Online (Sandbox Code Playgroud)
来自/t:pack
命令的警告告诉我这将会发生,但不知道如何解决它:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Sdks\NuGet.Build.Tasks.Pack\buildCrossTargeting\NuGet.Build.Tasks.Pack.targets(73,5): warning : Issue found with package 'MyLibrary'. [D:\XXX\YYY\src\MyLibrary\MyLibrary.csproj]
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Sdks\NuGet.Build.Tasks.Pack\buildCrossTargeting\NuGet.Build.Tasks.Pack.targets(73,5): warning : Issue: Assembly not inside a framework folder. D:\XXX\YYY\src\MyLibrary\MyLibrary.csproj]
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Sdks\NuGet.Build.Tasks.Pack\buildCrossTargeting\NuGet.Build.Tasks.Pack.targets(73,5): warning : Description: The assembly 'lib\MyLibrary.dll' is placed directly under 'lib' folder. It is recommended that assemblies be placed inside a framework-specific folder.
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Sdks\NuGet.Build.Tasks.Pack\buildCrossTargeting\NuGet.Build.Tasks.Pack.targets(73,5): warning : Solution: Move it into a framework-specific folder. If this assembly is targeted for multiple frameworks, ignore this warning.
Run Code Online (Sandbox Code Playgroud)
笔记:
我没有使用*.nuspec
文件.只是*.csproj
文件工作的新方式(https://docs.nuget.org/ndocs/schema/msbuild-targets#pack-target)
这是文件的一些相关内容的样子:
<Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<OutputType>library</OutputType>
<TargetFrameworks>netstandard1.4;net452</TargetFrameworks>
<AssemblyName>MyLibrary</AssemblyName>
<Authors>XXX</Authors>
<Description>YYY</Description>
<PackageId>MyLibrary</PackageId>
<PackageVersion>1.2.3</PackageVersion>
</PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
感谢您的意见。我根据他们找到了自己的方法。
这就是我所做的:我下载了dotnet
再次下载了 cli 工具并从头开始测试。我意识到cli工具的版本是相同的,所以我开始比较里面的文件。
无法运行的版本包含以下文件:
+ dotnet
+ sdk
+ 1.0.0-preview2-1-003177
+ 1.0.0-preview2-003131
+ 1.0.0-preview2-003133
+ 1.0.0-preview4-004233
Run Code Online (Sandbox Code Playgroud)
使用dotnet build /t:pack /p:Configuration=Release /p:IncludeSymbols=true mylibrary.csproj
显示以下错误:
Couldn't find 'project.json' in '/t:pack'
Run Code Online (Sandbox Code Playgroud)
我下载的第二个版本仅包含这些:
+ dotnet
+ sdk
+ 1.0.0-preview4-004233
Run Code Online (Sandbox Code Playgroud)
并且执行之前的命令,可以正常运行:
Microsoft (R) Build Engine version 15.1.458.808
Copyright (C) Microsoft Corporation. All rights reserved.
...
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1217 次 |
最近记录: |