2015-11-03 112 views
3

我想在构建服务器上用MSBuild命令行构建我的解决方案。 但是,MSBuild不会将任何dll复制到bin文件夹,因此后续目标失败。MSBuild不会直接将引用的dll复制到bin文件夹

我的解决方案由几个只包含一个项目的项目组成。该项目在应该在之前构建的相同解决方案中引用其他项目。

项目文件中的所有参考都设置为<Private>true</Private>

这里是我的MSBuild命令:

Msbuild solution.sln /m /p:BuildInParallel=true /p:VersionNumber=1.2.3.4 
"/t:Rebuild" /p:Configuration=Release /p:WebProjectOutputDir=publish\ 
"/p:GitVersion=abcdef (abcdef)" /p:OutDir=publish\bin\ /p:RunOctoPack=true 

当我建立在Visual Studio(2012年或2013年)的bin文件夹中创建获取所有所需的DLL复制到bin文件夹中的项目。 Visual Studio将dll复制到bin文件夹后,MSBuild命令将工作,直到我更改了任何引用的dll。

我读了一些关于间接引用不被复制的帖子,但对我而言,即使是直接引用也不会被复制。

我也尝试调用像ResolveReferences这样的目标,但总是得到target ResolveReferences does not exist in the project solution.sln的错误。

有谁知道我在做什么错?谢谢您的帮助。

+0

试试这些:http://stackoverflow.com/questions/1132243/msbuild-doesnt-copy-参考-dlls-if-using-project-dependencies-in-solution http://stackoverflow.com/questions/14322391/msbuild-to-copy-dynamically-generated-files-as-part-of-project-dependency – BarrieK

+0

谢谢但第一个答案处理间接引用,但对我来说,直接的引用不会被复制,因此构建失败。第二个答案涉及引用项目的内容文件,这对我来说不是问题。 –

+0

你有机会解决这个问题吗?我有类似的 – Artyom

回答

0

尝试去解决方案资源管理器中的我的项目,然后单击发布选项卡。随后,您将看到所有.dll文件和其他与您的程序相关的文件的列表。您可能需要单击左下角的全部显示才能显示所有文件。这里选择丢失的文件,并在发布栏中选择Include,在Download Group中选择Required,并且Hash列选择include

相关问题