nuget包在构建时被删除

时间:2017-06-07 18:30:08

标签: visual-studio wix nuget visual-studio-2017

我有一个Wix Toolset boostrapper UI项目,我想“托管”UI项目本身不需要的某些程序集(我试图通过让Wix只查看设置UI的bin目录来简化我的生活对于所有组件。)

我可以将AutoFac添加到UI项目中。但是当我构建项目时,Autofac依赖项被剥离,其DLL不会被复制到bin目录。这并不奇怪,因为在UI项目中没有使用Autofac,所以我想这是一种优化。

在这种情况下,我想要做的是覆盖优化,并强制VS将Autofac程序集添加到bin目录。

是否有VS设置来执行此操作?

1 个答案:

答案 0 :(得分:1)

  

是否有VS设置来执行此操作?

如果我理解正确,您希望强制VS将Autofac程序集添加到bin目录,您可以尝试在post build事件中添加复制任务,以便在构建后将Autofac程序集复制到bin目录(右键单击项目 - >属性 - >构建事件 - >构建后事件命令行)。

$jsfile = 'assets/bootstrap/js/refresh.js';
        $crud->set_js($jsfile);

参考:https://msdn.microsoft.com/en-us/library/ke5z92ks.aspx?f=255&MSPPError=-2147217396

Mark评论更新:

  

但是构建后的副本需要nuget"已安装" Autofac包,这是它没有做的。

是的,您可以从Autofac所在的其他项目中复制。更重要的是,构建事件可以做更多的事情。您可以使用另一个命令行在xcopy命令行之前的构建后事件中安装Autofac:

xcopy.exe $(AutofacPath)Autofac.dll $(ProjectDir)$(OutDir)

使用此命令,nuget将下载该软件包,并将其设置为Bin文件夹。

enter image description here

现在事情很简单,我们只需要在后期构建事件中添加以下命令行:

D:\nuget.exe install AutoFac

注意:您需要在命令行中指定nuget.exe所在的路径,例如D:\nuget.exe install AutoFac xcopy.exe "$(ProjectDir)$(OutDir)Autofac.4.6.0\lib\net45\Autofac.dll" "$(ProjectDir)$(OutDir)"