Sco*_*ger 6 projects-and-solutions visual-studio
我正在使用Visual Studio 2008,并希望创建一种容器项目,该项目包含许多必须与解决方案一起安装的DLL.我希望它们在一个单独的项目中,以便它们可以作为一个组轻松地附加到解决方案中.
我创建了一个空的项目调用TEST,使用"内容"的构建操作将我的DLL添加到它,并将它们设置为"始终复制".这一切都完全符合我的要求.问题是如果我将TEST项目输出类型设置为"控制台应用程序"或"Windows应用程序",它将不会构建,因为没有入口点.如果我将输出类型设置为"类库",它会构建,但我最终得到一个我不想要的额外TEST.DLL文件.
无论如何都要将输出类型设置为"无"?我希望构建操作发生(所以我的DLL被复制)但我不希望创建虚拟类程序集.有任何想法吗?
谢谢!
假设您有两个项目的解决方案:
Main:您的主要(启动)项目.BundledDLLs:一个库项目,其中包含.dll应该在主项目的输出目录中结束的s.在Visual Studio中实现目标的最简单方法可能如下:
添加所有.dlls BundledDLLs并将其Copy to output目录设置为Copy for newer.
这在Project Explorer和Properties窗口中完成.
配置BundledDLLs的输出目录与输出目录相同Main.
这可以在" 项目属性"页面的" 构建"选项卡中完成.在" 输出路径"文本框中输入以下内容:BundledDLL
..\Main\bin\Debug
Run Code Online (Sandbox Code Playgroud)设置BundledDLLs为依赖关系Main.
不要像通常那样添加BundledDLLs项目引用Main; 相反,使用Project Dependencies对话框.这将告诉构建工具无论何时Main构建,都BundledDLLs需要首先构建.
通过右键单击Main项目节点以打开上下文菜单来执行此操作; 从那里选择Project dependencies ... 在现在打开的对话框中,首先Main从下拉列表中选择; 然后检查BundledDLLs下面的项目列表.BundledDLLs现在注册为依赖Main.
PS:没有明确的汇编引用的一个缺点
Main是某些工具可能无法识别依赖项.例如,ClickOnce部署可能无法正常工作.
添加一个post-build事件BundledDLLs,删除多余的事件BundledDLLs.dll.
正如您所说,您不希望也不需要BundledDLLs构建时生成的虚拟输出.因此,添加一个post-build事件,只需.dll在创建后删除它.
在" 项目属性"页面中打开" 构建事件"选项卡,然后在构建后的文本框中输入以下内容:BundledDLLs
DEL "$(TargetDir)\$(TargetName).*"
Run Code Online (Sandbox Code Playgroud)
(如果你想知道:你为什么不将此项目添加作为项目引用的原因Main更早,因为如果你这样做了,Main要寻找BundledDLLs.dll,它也无法找到,因为你实际上并不想要生成这样的文件.)
PS:添加这样的构建后步骤的一个缺点是它可能会干扰增量构建.如果您的项目在此之后不断从头开始重新编译,那么最好不要删除构建后的步骤并
BundledDLLs.dll在解决方案的输出目录中使用额外的内容.
| 归档时间: |
|
| 查看次数: |
3136 次 |
| 最近记录: |