相关疑难解决方法(0)

为什么NuGet在NuGet包更新期间将app.config与assemblyBinding一起添加到LIBRARY项目?

这个信息不仅仅在可执行文件的项目中是必需的吗?

如何禁用此文件创建?

NuGet 2.8

编辑

库项目在NuGet 2.7中是例外,通过修复此问题在2.8中改变了行为:http://nuget.codeplex.com/workitem/3827 with commit:https://github.com/NuGet/NuGet2/commit/448652d028e3f01ba4022e147baaf4e1fb3f969b

nuget

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

为什么在添加Microsoft.Bcl.Async包后将"bindingRedirect"添加到app.config文件中?

我想知道为什么nuget app.config在安装以下代码后将以下代码添加到我的应用程序文件中Microsoft.Bcl.Async:

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-2.5.19.0" newVersion="2.5.19.0" />
        </dependentAssembly>
        <dependentAssembly>
            <assemblyIdentity name="System.Threading.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-2.5.19.0" newVersion="2.5.19.0" />
        </dependentAssembly>
    </assemblyBinding>
</runtime>
Run Code Online (Sandbox Code Playgroud)

如果我从配置中删除此XML元素,该应用程序将无法正常工作.

据我所知,我们可以使用它bindingRedirect来加载一个新版本或旧版本的程序集,以防我们在编译EXE时使用的版本消失.
但是我正在使用的版本2.5.19.0,为什么我需要重定向呢?

我的DLL的版本

我为什么需要这个bindingRedirect

.net c# app-config base-class-library

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

在app.config中为类库做绑定重定向会做什么吗?

我经常使用的VS解决方案包括一个可执行项目(控制台应用程序,Web应用程序)和许多可执行文件引用的类库项目.

在使用NuGet并安装软件包时,通常会app.config为每个项目创建一个文件,通常只包含合并重定向列表,这些重定向合并了引用程序集的版本.有时候会有一些特定于第三方库的内容(比如Entity Framework配置部分),但是现在让我们把它放在一边.

当我构建解决方案并使用主可执行项目的二进制文件时,我会看到构建输出中的所有类库项目程序集以及相应的*.config文件(app.config文件AssemblyName.config在构建时重命名为).

启动主可执行文件时,类库程序集的配置文件是否有效?或者只是app.config在这种情况下具有效果的可执行文件?如果在某些类库项目上设置了一些绑定重定向,并在主可执行项目上设置了一些不同的绑定重定向,这些如何组合,哪些优先?

我试图在网上研究这个,从我读过的内容来看,它看起来像app.config非可执行程序集的文件是无用的(关于绑定重定向).有人可以确认这一点或详细说明这个主题吗?

如果是这样的话,app.config如果它们只包含绑定重定向,那么实际上不希望NuGet在类库中创建这些文件吗?我觉得NuGet不应该为类库项目创建那些绑定重定向,因为它只会增加对实际应用的设置的混淆.


我在这个主题上发现了这些现有的Stack Overflow问题,但是他们接受的答案实际上是矛盾的,即使它们被标记为彼此重复.

第一个问题的接受答案提到app.config文件实际上是在编译时使用的,这意味着它们可能有效.像MSDNMSBuild源代码这样的来源被引用作为它在编译时使用的证明.不幸的是,我对MSBuild的熟练程度不足以理解它是如何被使用的,以及它是否真的是一个有效的参数.

任何人都可以描述一个示例场景来证明带有绑定重定向的类库的app.config可以做什么吗?

.net c# app-config nuget assembly-binding-redirect

43
推荐指数
2
解决办法
3416
查看次数