2017-06-07 55 views
0

我有一个Wix Toolset的boostrapper UI项目,我想“托管”UI项目本身并不需要的某些程序集(我试图通过让Wix只看一下来简化我的生活在所有程序集的设置UI的bin目录中)。nuget包被删除构建

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

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

是否有一个VS设置来做到这一点?

回答

1

是否有VS设置要做到这一点?

如果我理解正确的话,你要强迫VS添加Autofac组件到bin目录下,你可以尝试在后生成事件添加一个副本任务后,到Autofac集复制到bin目录编译(右键单击项目 - >属性 - >生成事件 - >生成后事件命令行)。

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

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

更新马克评论:

但后期生成副本要求的NuGet “已安装” 的Autofac包,这是它没有做什么。

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

D:\nuget.exe install AutoFac 

使用此命令,将的NuGet下载包,并将其设置到bin文件夹。

enter image description here

现在,事情会简单,我们只需要添加下面的命令行中生成后事件:

D:\nuget.exe install AutoFac 
xcopy.exe "$(ProjectDir)$(OutDir)Autofac.4.6.0\lib\net45\Autofac.dll" "$(ProjectDir)$(OutDir)" 

注:您需要在那里的NuGet指定路径。 exe位于命令行中,如D:\

+0

合理的建议@Leo-MSFT。但是后期制作的副本要求nuget“安装”Autofac包,这是它没有做的。我可以从Autofac的其他项目中做一个后期制作拷贝,事实上,这个项目已经被使用了,但是这感觉非常糟糕。 –

+0

@MarkOlbert,谢谢你的回复。根据你的评论,我已经更新了我的答案,希望你能得到更多有用的信息。如果上述答案解决了您的问题,您可以将其标记为答案,以便可以帮助其他社区成员获得相同问题。如果没有,请让我知道你的问题是免费的,我会继续关注它。 –

+0

它不完全回答我的问题,狮子座,因为我想要做的就是让VS删除nuget包引用。但是这是一个解决方法,所以我已经把它提升了。 –