首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Intercept .nuget转换安装/卸载

Intercept .nuget转换安装/卸载
EN

Stack Overflow用户
提问于 2016-10-29 03:30:30
回答 1查看 132关注 0票数 0

类似的问题:Renaming Web.config to run transforms breaks nuget package installation

我正在尝试让我的配置文件的构建转换与nuget一起工作。我有Web.Base.Config、Web.Debug.Config等。

如果不能将nuget的目标更改为Web.Base.Config而不是Web.Config,那么我希望在nuget转换之前将Web.Base.Config复制到Web.Config,并在转换之后从Web.config复制回Web.Base.config。

有没有办法创建一个BeforeTarget AfterTarget任务来实现这一点?我不确定nuget的目标是什么。

或者,有没有其他的解决方案可以在开发机器上进行构建转换?

编辑:

我发现我可以将Nuget.Core安装到我的项目中,在ProjectManager类中有一个名为PackageReferenceAdding的事件,如果我能想出如何从UI界面挂接到这个类中来做<Copy SourceFiles="Web.Base.config" DestinationFiles="Web.config" />或类似的事情的话。

编辑2:我找到了Nuget.VisualStudio (我不确定这是由nuget中的项目调用的,还是由安装nuget包的解决方案调用的,我找不到太多信息)

并且认为,如果在正确的时间触发,下面的代码应该可以工作:

代码语言:javascript
复制
    private void CopyTask()
    {
        var componentModel = (IComponentModel)Package.GetGlobalService(typeof(SComponentModel));
        var installerServices = componentModel.GetService<IVsPackageInstallerEvents>();
        installerServices.PackageInstalling += metadata => {
            //Copy Web.Base.Config to Web.Config
        };
        installerServices.PackageInstalled += metadata =>
        {
            //Copy Web.Config to Web.Base.Config
        };
    }
EN

回答 1

Stack Overflow用户

发布于 2016-11-02 09:41:43

Web.config的nuget目标是在创建项目并安装nuget时生成的。它不是构建过程的目标。但转换操作是在构建过程中操作的,它将转换整个文件,而不是文件的一部分。所以我们不能把nuget的目标改成Web.Base.Config。

此外,我们经常在packages.config文件中管理nuget包的安装/卸载。在Web.config文件中,它只列出了当前项目中使用的程序集。它们是两个不同的动作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40312028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档