我有一个应用程序,其中一个包(cefsharp)有Microsoft Visual C++ Redistributable〉2019的要求。遗憾的是,VS在发布单个文件时不包含此需求,这与框架有关。当我启动应用程序时,它很好地要求安装。net 6,如果还没有安装。对于Visual C++,它不会这样做。应用程序就是不会启动,没有错误消息或错误日志。只是事件查看器中的一个误导性条目。是否有一种方法可以在项目中指定该需求,以便它也会询问您是否要安装它(如果不存在)?
j13ufse21#
你可以bin部署运行时,它们只是一组dll,所以理论上你应该可以在你的exe中包含dll作为Content。以下是用记事本写的,应该能给予你一个大致的概念。只能在VS下运行,因为$(DevEnvDir)在命令行中没有定义(从内存中)。将以下内容添加到你的项目文件中。
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>
1条答案
按热度按时间j13ufse21#
你可以bin部署运行时,它们只是一组dll,所以理论上你应该可以在你的exe中包含dll作为
Content
。以下是用记事本写的,应该能给予你一个大致的概念。只能在
VS
下运行,因为$(DevEnvDir)
在命令行中没有定义(从内存中)。将以下内容添加到你的项目文件中。