将vc_redist 2019 c++作为要求包含在.net项目中

gr8qqesn  于 2023-02-06  发布在  .NET
关注(0)|答案(1)|浏览(255)

我有一个应用程序,其中一个包(cefsharp)有Microsoft Visual C++ Redistributable〉2019的要求。
遗憾的是,VS在发布单个文件时不包含此需求,这与框架有关。
当我启动应用程序时,它很好地要求安装。net 6,如果还没有安装。对于Visual C++,它不会这样做。应用程序就是不会启动,没有错误消息或错误日志。只是事件查看器中的一个误导性条目。
是否有一种方法可以在项目中指定该需求,以便它也会询问您是否要安装它(如果不存在)?

j13ufse2

j13ufse21#

你可以bin部署运行时,它们只是一组dll,所以理论上你应该可以在你的exe中包含dll作为Content
以下是用记事本写的,应该能给予你一个大致的概念。只能在VS下运行,因为$(DevEnvDir)在命令行中没有定义(从内存中)。将以下内容添加到你的项目文件中。

<Import Project="$(DevEnvDir)..\..\VC\Auxiliary\Build\Microsoft.VCToolsVersion.default.props"/>

<PropertyGroup> 
    <_VCRedistLocation>$(DevEnvDir)..\..\VC\Redist\MSVC\$(VCToolsRedistVersion)\$(PlatformTarget)\Microsoft.VC142.CRT</_VCRedistLocation>
</PropertyGroup>
<ItemGroup>
    <Content Include="$(_VCRedistLocation)\**\*">
      <Link>%(RecursiveDir)%(FileName)%(Extension)</Link>
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
      <PublishState>Included</PublishState>
      <Visible>false</Visible>
      <IncludeInVsix>true</IncludeInVsix>
    </Content>
</ItemGroup>

相关问题