在 .exe 文件中嵌入 json 文件
Embed json file within .exe file
我正在尝试将我的控制台应用程序发布到 1 个 exe 文件中。通过添加到 csproj 文件,我设法将 dll 文件嵌入到 exe 文件中:
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<PublishSingleFile>true</PublishSingleFile>
<IncludeNativeLibrariesForSelfExtract>true</IncludeNativeLibrariesForSelfExtract>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
但是我仍然需要我的文件 extractConfig.json 和 exe 文件在同一个 space 中,否则它不会 运行。我怎样才能将这个文件也嵌入到 exe 中?
目前正在发布中:
但我需要它,所以它只是 exe 文件
有几个选项:
如果不存在则创建配置
程序启动时检查配置文件是否存在。如果没有,则创建它。您可以从序列化的默认配置对象创建此文件,或将配置文件作为字符串资源或其他方式包含在内。我也会考虑将此文件放在 localappdata 文件夹中,因为您可能没有对 .exe 文件所在文件夹的写入权限。
从包中排除配置文件
您可以为配置文件添加 ExcludeFromSingleFile 选项,使其不包含在单个 .exe 文件中。这显然需要您部署多个文件。
<ItemGroup>
<None Update="extractConfig.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
</None>
</ItemGroup>
与我一起工作的人交谈并接受了@SirOneOfMany 的建议,我现在使用常量而不是 json 文件,这很容易让我只有 1 个 exe 文件。
感谢大家的建议
我正在尝试将我的控制台应用程序发布到 1 个 exe 文件中。通过添加到 csproj 文件,我设法将 dll 文件嵌入到 exe 文件中:
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<PublishSingleFile>true</PublishSingleFile>
<IncludeNativeLibrariesForSelfExtract>true</IncludeNativeLibrariesForSelfExtract>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
但是我仍然需要我的文件 extractConfig.json 和 exe 文件在同一个 space 中,否则它不会 运行。我怎样才能将这个文件也嵌入到 exe 中?
目前正在发布中:
但我需要它,所以它只是 exe 文件
有几个选项:
如果不存在则创建配置
程序启动时检查配置文件是否存在。如果没有,则创建它。您可以从序列化的默认配置对象创建此文件,或将配置文件作为字符串资源或其他方式包含在内。我也会考虑将此文件放在 localappdata 文件夹中,因为您可能没有对 .exe 文件所在文件夹的写入权限。
从包中排除配置文件
您可以为配置文件添加 ExcludeFromSingleFile 选项,使其不包含在单个 .exe 文件中。这显然需要您部署多个文件。
<ItemGroup>
<None Update="extractConfig.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
</None>
</ItemGroup>
与我一起工作的人交谈并接受了@SirOneOfMany 的建议,我现在使用常量而不是 json 文件,这很容易让我只有 1 个 exe 文件。
感谢大家的建议