我创建了一个新的C#项目WPF应用程序-一个用于**.NET CoreWPF应用程序的项目。Framework:.NET Core 3.1。
项目已加载。(您有一个空表单)右键单击您的项目,并检查您是否有“输出类型”Windows应用程序。(这意味着当您单击构建时,它会在项目的BIN文件夹中创建一个EXE文件)然后将新项目添加到解决方案中:* 安装向导 * 通过扩展名 Microsoft Visual Studio安装项目 。然后按照这里的步骤-> https://stackoverflow.com/a/6090929/15917420
最后将DLL封装成安装程序文件而不是EXE。
所以如果你安装setup.exe,它会安装DLL。你有同样的问题还是我错过了什么?
如果我用.NET Framework创建WPF,我就不会有这个问题。
谢谢你
编辑:录制视频:https://drive.google.com/file/d/11ElC0F62klxQOI-beOn6LhcZbyOb7QDT/view?usp=sharing
3条答案
按热度按时间oprakyz71#
我也有同样的问题。微软已经发布了这个:https://learn.microsoft.com/en-us/visualstudio/deployment/installer-projects-net-core?view=vs-2019
基本上就是说,对于.NET Core项目,在构建安装项目时,你必须使用“发布的项目”而不是“主输出”。它也有一些其他的提示。
ckocjqey2#
当目标是.NET Core时,“主”项目(即应用程序)会获得两个文件,一个dll和一个exe文件。exe文件只是一个存根加载器,它定位dotnet运行时并将控制权转移到相应的dll。简单地说,.NET Core项目的exe正在执行
dotnet <dll-with-the-same-name>
-命令。考虑到这一点,你需要确保你的安装程序安装了dll和exe(以及任何其他类似命名的文件,比如
<Application>.deps.json
)。piah890a3#
是的,.net core WinForms的“published items”而不是“primary output”解决了我在通用安装项目中的问题。您可以使用“published”作为快捷方式,并且以任何其他方式链接到您的exe,就像以前的“primary output”一样。注意现在您必须:1.发布WinForms(我把我的发送到一个目录,但你不必在安装程序中的任何地方指明),然后2:将安装程序指向“已发布的文件”而不是“主输出”。