我有一个Wix Toolset boostrapper UI项目,我想“托管”UI项目本身不需要的某些程序集(我试图通过让Wix只查看设置UI的bin目录来简化我的生活对于所有组件。)
我可以将AutoFac添加到UI项目中。但是当我构建项目时,Autofac依赖项被剥离,其DLL不会被复制到bin目录。这并不奇怪,因为在UI项目中没有使用Autofac,所以我想这是一种优化。
在这种情况下,我想要做的是覆盖优化,并强制VS将Autofac程序集添加到bin目录。
是否有VS设置来执行此操作?
答案 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文件夹。
现在事情很简单,我们只需要在后期构建事件中添加以下命令行:
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)"
。