我编写了一个 .NET Core 2.0 控制台应用程序。使用 发布dotnet publish,但是执行过程中出现错误:
编译项目
dotnet publish src\Bucket.CLI\Bucket.CLI.csproj -c Release --self-contained false
Run Code Online (Sandbox Code Playgroud)
执行程序
bin\Release\netcoreapp2.0\publishdotnet Bucket.CLI.dll
Run Code Online (Sandbox Code Playgroud)
提示错误:
Error:
An assembly specified in the application dependencies manifest (Bucket.CLI.dep
s.json) was not found:
package: 'System.Text.Encoding.CodePages', version: '4.5.1'
path: 'runtimes/win/lib/netcoreapp2.0/System.Text.Encoding.CodePages.dll'
Run Code Online (Sandbox Code Playgroud)
但是,如果我指定 a --runtime,则不会发生错误?
编译项目
dotnet publish src\Bucket.CLI\Bucket.CLI.csproj -c Release --self-contained false -r win-x64
Run Code Online (Sandbox Code Playgroud)
执行程序
bin\Release\netcoreapp2.0\win-x64\publishdotnet Bucket.CLI.dll
Run Code Online (Sandbox Code Playgroud)
该程序运行良好。
这可能是什么原因造成的?
如果我添加帖子添加:Bucket.CLI.runtimeconfig.dev.json那么程序可以成功运行。但这不起作用。还有其他方法吗?
{
"runtimeOptions": {
"additionalProbingPaths": [
"C:\\Users\\menghanyu\\.dotnet\\store\\|arch|\\|tfm|",
"C:\\Users\\menghanyu\\.nuget\\packages",
"C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder"
]
}
}
Run Code Online (Sandbox Code Playgroud)
当我添加--runtime编译时没有Bucket.CLI.runtimeconfig.dev.json程序也运行成功。
我很困惑,为什么会这样?
src/Bucket/Bucket.csproj (.net standard2.0)<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<FileVersion>0.3.7250.21600</FileVersion>
<Version>0.3.0+source</Version>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.CSharp" Version="4.6.0-preview7.19362.9" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.2" />
<PackageReference Include="Newtonsoft.Json.Schema" Version="3.0.11" />
<PackageReference Include="System.IO.Compression" Version="4.3.0" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Assets\Schema\**">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</EmbeddedResource>
<EmbeddedResource Include="Assets\Signature\**">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</EmbeddedResource>
</ItemGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
src/Bucket.CLI/Bucket.CLI.csproj (.net core 2.0)<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.0</TargetFramework>
<StartupObject>Bucket.CLI.Program</StartupObject>
<Version>0.3.0+source</Version>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<FileVersion>0.3.7250.21600</FileVersion>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\Bucket\Bucket.csproj" />
</ItemGroup>
<ItemGroup>
<None Update="bucket">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="bucket.bat">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
src/Directory.Build.props (public)<Project>
<PropertyGroup>
<IsTestProject>$(MSBuildProjectName.Contains('Tests'))</IsTestProject>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<WarningsAsErrors />
<GenerateDocumentationFile>true</GenerateDocumentationFile>
</PropertyGroup>
<ItemGroup>
<AdditionalFiles Include="$(MSBuildThisFileDirectory)stylecop.json" Link="stylecop.json" />
<Reference Include="GameBox.Console">
<HintPath>..\..\lib\GameBox.Console\GameBox.Console.dll</HintPath>
</Reference>
<Reference Include="GameBox.Semver">
<HintPath>..\..\lib\GameBox.Semver\GameBox.Semver.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" PrivateAssets="all" Version="3.1.0-beta3-final" />
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" PrivateAssets="all" Version="2.9.2" />
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
<PackageReference Include="SonarAnalyzer.CSharp" Version="7.14.0.8411">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
</ItemGroup>
<Choose>
<When Condition="'$(IsTestProject)' == 'true'">
<PropertyGroup>
<CodeAnalysisRuleSet>$(MSBuildThisFileDirectory)analysis.test.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="coverlet.msbuild" Version="2.6.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.1.0" />
<PackageReference Include="Moq" Version="4.11.0-rc1" />
<PackageReference Include="MSTest.TestAdapter" Version="2.0.0-beta4" />
<PackageReference Include="MSTest.TestFramework" Version="2.0.0-beta4" />
</ItemGroup>
</When>
<Otherwise>
<PropertyGroup>
<CodeAnalysisRuleSet>$(MSBuildThisFileDirectory)analysis.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
</Otherwise>
</Choose>
</Project>
Run Code Online (Sandbox Code Playgroud)
.NET Core SDK:{
"runtimeOptions": {
"additionalProbingPaths": [
"C:\\Users\\menghanyu\\.dotnet\\store\\|arch|\\|tfm|",
"C:\\Users\\menghanyu\\.nuget\\packages",
"C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder"
]
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
622 次 |
| 最近记录: |