相关疑难解决方法(0)

解决程序集的异常:尝试使用fixup加载无法验证的可执行文件

我正在将所需的程序集嵌入到我的项目中,并在运行时使用AppDomain.CurrentDomain.AssemblyResolve事件解析它们.

一切正常,除了irrKlang的.net4-wrapper,如果我这样做会引发异常;

System.IO.FileLoadException: Attempt to load an unverifiable executable with fixups (IAT with more than 2 sections or a TLS section.) (Exception from HRESULT: 0x80131019)
   at System.Reflection.RuntimeAssembly.nLoadImage(Byte[] rawAssembly, Byte[] rawSymbolStore, Evidence evidence, StackCrawlMark& stackMark, Boolean fIntrospection, SecurityContextSource securityContextSource)
   at System.Reflection.Assembly.Load(Byte[] rawAssembly)
   at xyz.Utility.Helpers.AssemblyManager.Resolver(Object sender, ResolveEventArgs args) in C:\Users\shalafi\Desktop\xyz\trunk\xyz\Utility\Helpers\AssemblyManager.cs:line 55
   at System.AppDomain.OnAssemblyResolveEvent(RuntimeAssembly assembly, String assemblyFullName)
Run Code Online (Sandbox Code Playgroud)

基本上我怀疑CLR 无法使用Assembly.Load(byte [])加载混合模式程序集,虽然我不确定.

我无法找到与异常消息相关的任何内容;

尝试使用fixups加载无法验证的可执行文件(IAT包含2个以上的部分或TLS部分.)

帮助赞赏.

c# assembly-resolution

19
推荐指数
1
解决办法
8761
查看次数

如何使用ilMerge将dll合并到exe文件中?

我试过了:

C:\Windows\System32>ilmerge /target:winexe /out:c:\output.exe c:\MyProgram.exe c:\Microsoft.WindowsAPICodePack.dll
Run Code Online (Sandbox Code Playgroud)

但得到了:

'ilmerge' is not recognized as an internal or external command, operable program or batch file.
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?(顺便说一句,是否有更好的方法将dll合并到exe文件中?)

谢谢

ilmerge windows-api-code-pack

11
推荐指数
1
解决办法
1万
查看次数

如何在AfterBuild中使用ILMerge和.NET 4.5?

我们想要将几个项目的解决方案升级到.NET 4.5.我们已经使用Visual Studio 2012.我们使用ILMerge将程序集合并到单个EXE.

我们当前主项目的.csproj文件如下所示:

<Target Name="AfterBuild" Condition=" '$(Configuration)' == 'Release' ">
    <CreateItem Include="@(ReferenceCopyLocalPaths)" Condition="'%(Extension)'=='.dll'">
        <Output ItemName="AssembliesToMerge" TaskParameter="Include" />
    </CreateItem>
    <PropertyGroup>
        <ReferenceAssemblies>C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0</ReferenceAssemblies>
    </PropertyGroup>
    <Message Importance="high" Text="Executing ILMerge...with target platform from $(ReferenceAssemblies)" />
    <Exec Command="&quot;$(SolutionDir)LIB\ILMerge.exe&quot; /out:@(MainAssembly) /internalize /targetplatform:v4,&quot;$(ReferenceAssemblies)&quot; &quot;@(IntermediateAssembly)&quot; @(AssembliesToMerge->'&quot;%(FullPath)&quot;', ' ')" />
    <Delete Files="@(ReferenceCopyLocalPaths->'$(OutDir)%(DestinationSubDirectory)%(Filename)%(Extension)')" />
</Target>
Run Code Online (Sandbox Code Playgroud)

这应该如何看待.NET 4.5?

我在这里读到使用ILMerge和.NET 4.5存在一些问题.

.net msbuild ilmerge .net-4.5 visual-studio-2012

10
推荐指数
1
解决办法
1万
查看次数

如何链接 .NET Core 自包含部署?

我按照这个很好的教程创建了一个独立的 .NET Core 控制台应用程序。

这个过程会生成一个/publish包含 123(!) 个文件的文件夹,包括我的可执行文件。现在,由于所有这些 dll 都不太可能改变,我想将它们静态链接到可执行文件并获得一个干净的可执行文件。

我最感兴趣的是在我的构建服务器上链接一个 win64 目标,但是有关如何构建 macosx 可执行文件或 linux 可执行文件的说明对我和未来的读者都很有用。

我记得几年前在 .Net classic 下做这件事。有没有人在 .Net Core 下成功做到过?

另请参阅此相关的 corefx 问题

.net static-linking .net-core

7
推荐指数
1
解决办法
1308
查看次数

可以将DLL合并到.NET EXE中吗?

我有一个DLL存储两个应用程序共有的类.我想将我的应用程序限制在一个EXE文件中,并希望看看我是否能以某种方式将此DLL嵌入到我的主EXE中.

如何将外部DLL嵌入到我的应用程序中?(如果可能的话)

.net c# clr

6
推荐指数
2
解决办法
1万
查看次数

如何将"类项目"中的dll嵌入到我在vb.net中的项目中

我有一个标准的"类库"项目,其中包含一组用于在几乎所有新项目中导入的类.

我的工作方式是创建一个空的项目,这是我的主要项目的新解决方案,然后我添加到解决方案中提到的类库项目,这样我可以看到在Soluction资源管理器这两个项目,甚至可以看到的库代码或者在需要时更新它.然后我在我的主项目中编写代码并编译.

这导致我在编译时有2个文件:file*.exe和stdlib.dll

在某些情况下,我使用lib作为非常小的工具,我想以简单明了的方式重新分发,所以我想将我的类库项目生成的stdlib.dll嵌入到我的*.exe文件中.

我很确定必须有一个为什么要在我的Microsoft Visual Basic 2010 Express中执行此操作,但我不知道如何操作.

有什么建议吗?

非常感谢先进.

vb.net dll

6
推荐指数
1
解决办法
2万
查看次数

如何将 Windows 窗体应用程序 (C#) 制作为单个 exe 文件?

我正在使用 Visual Studio 2013

我刚刚用它制作了我的第一个 Windows 应用程序(Windows 窗体),如果可能的话,我想将库和配置/清单等文件嵌入到单个可执行文件中,以提供更多便利。能做到吗?如果是这样怎么办?

多谢

c# winforms visual-studio-2013

5
推荐指数
1
解决办法
5769
查看次数

在 TFS 中添加 nuget 包-packages.config 需要签入吗?

我想知道是否有人知道如何在我的应用程序中正确包含 Nuget 包。安装它 - 在解决方案资源管理器中自动添加引用。此外,它还创建/显示一个名为 package.config 的文件 - 看起来它想添加到我的项目中。它显示在解决方案资源管理器中,但出现在我的根文件夹中,旁边有一个小 + 号 - 并允许我签入挂起的更改/添加它。我应该将它添加到我的项目中吗?

在此处输入图片说明

我基本上不想搞砸任何事情。

tfs nuget-package

5
推荐指数
1
解决办法
2687
查看次数

如何在 WPF Net5 应用程序中创建单个文件?

如果我没记错的话,似乎我可以在单个文件中发布应用程序,因此我只能获得一个包含工作所需的所有 exe 文件。

首先,我尝试了发布向导,然后选中选项“自包含”,生成单个文件并准备运行。但我收到了大约 300 个文件。

然后我尝试了这个命令:

dotnet publish -r win-x64 -p:PublishSingleFile=true --self-contained true -p:IncludeNativeLibrariesInSingleFile=true -c Release -o publish
Run Code Online (Sandbox Code Playgroud)

我得到了同样的结果。

我也尝试过这个:

dotnet publish -r win-x64 -p:PublishSingleFile=true true -p:IncludeNativeLibrariesInSingleFile=true -c Release -o publish
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我不设置自包含,因为在我读过的某处,当设置单个文件时不需要它,因为如果您想要单个文件,它意味着自包含。无论如何,我总是得到相同的结果。

我的应用程序是一个 wpf 应用程序,其中有一个 exe,并且我使用的是 Net 5。

哪种是获取单个 .exe 文件的正确方法?

谢谢。

PD:文档告诉我,在发布向导中,我必须检查我检查的 3 个检查。但我没有得到唯一的文件。

https://learn.microsoft.com/en-us/dotnet/core/deploying/single-file

c#

2
推荐指数
1
解决办法
2991
查看次数