Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何更改nuget将转换的配置文件以实现程序集绑定重定向_C#_Msbuild_Nuget_Csproj - Fatal编程技术网

C# 如何更改nuget将转换的配置文件以实现程序集绑定重定向

C# 如何更改nuget将转换的配置文件以实现程序集绑定重定向,c#,msbuild,nuget,csproj,C#,Msbuild,Nuget,Csproj,我正在asp.net mvc项目中使用xdt转换。My web.configs具有以下结构: web.base.config-带有共享道具/绑定重定向等的基本配置文件 web.$(configuration).config-config文件,包含给定配置的xdt转换 web.config—XML转换的输出文件 Nuget有时会生成程序集绑定重定向,这些重定向在TransformXML自动生成的web.config文件中创建。我想将web.base.config作为应用绑定重定向的文件。我怎么

我正在asp.net mvc项目中使用xdt转换。My web.configs具有以下结构:

  • web.base.config-带有共享道具/绑定重定向等的基本配置文件
  • web.$(configuration).config-config文件,包含给定配置的xdt转换
  • web.config—XML转换的输出文件
Nuget有时会生成程序集绑定重定向,这些重定向在TransformXML自动生成的web.config文件中创建。我想将
web.base.config
作为应用绑定重定向的文件。我怎么能这么做

我试过的 已调查
GenerateBindingRedirects
target来自
Microsoft.Common.CurrentVersion.targets

基本上,我尝试查看这是否是可以参与*.config文件上的程序集绑定重定向转换的msbuild目标。不幸的是,没有,因为它正在转换bin文件夹中的
*.dll.config
文件

从中搜索nuget2源代码,以查找在源代码中确定配置文件的位置 我在RuntimeHelpers中看到了正确的文件。cs:63:

var manager = new BindingRedirectManager(fileSystem, project.GetConfigurationFile());
其中
GetConfigurationFile
实现如下所示:

return project.IsWebProject() ? WebConfig : AppConfig;

其中web/app config常量为
web.config
app.config
。这真的给了我0的希望,我可以更改配置文件的位置,以便使用当前的nuget运行时绑定重定向解析。也许我错了,仍然有机会将绑定重定向应用到
web.base.config

不幸的是,我不知道如何让nuget修补非标准配置,然而,我在转换方面做了很多工作,如果您能详细说明一下为什么您最终使用了
web.base.config
作为公共部分,而不是
web.config
,也许有人可以提供帮助。为我的团队工作的设置是保持
web.config
“dev ready”,允许开发人员在本地调试所有内容,并仅在发布期间应用配置转换。我们有两种类型的转换:配置(debug/release)和环境特定(dev1/qa2/prod.green)。@illiapov评论说额外的配置是发布时使用的转换,
web.config
,否则包含所有内容。我觉得这就是它的设计初衷,但这只是我的感觉。顺便说一句,NuGet2很古老,它的目标是Visual Studio 2013。NuGet.Client repo包含所有当前代码。对于我们来说,将
web.base.config
web.xxx.config
web.config
分开的原因是版本控制。它的错误倾向于有一个不断变化的配置文件签入到VC。有人找到一个优雅的方法来修复这个问题吗?@CervEd从我所看到的情况来看,我认为要拥有这个功能,需要对nuget进行更改。Nuget源代码没有任何属性,您可以通过检查来选择它应该引用的web.config:/