相关疑难解决方法(0)

如果在解决方案中使用项目依赖项,MSBuild不会复制引用(DLL文件)

我的Visual Studio解决方案中有四个项目(每个人都针对.NET 3.5) - 对于我的问题,这两个项目很重要:

  1. MyBaseProject < - 此类库引用第三方DLL文件(elmah.dll)
  2. MyWebProject1 < - 此Web应用程序项目引用了MyBaseProject

我加入了elmah.dll参考MyBaseProject通过点击在Visual Studio 2008中的"添加引用..."→"浏览"选项卡→选择"elmah.dll".

Elmah Reference的属性如下:

  • 别名 - 全球
  • 复制本地 - true
  • 文化 -
  • 说明 - 错误记录ASP.NET的模块和处理程序(ELMAH)
  • 文件类型 - 装配
  • 路径 - D:\ webs\otherfolder\_myPath\__ tools\elmah\Elmah.dll
  • 已解决 - 真的
  • 运行时版本 - v2.0.50727
  • 指定版本 - false
  • 强名 - 假
  • 版本 - 1.0.11211.0

MyWebProject1中,我通过以下方式添加了对Project MyBaseProject的引用:"Add reference ..."→"Projects"选项卡→选择"MyBaseProject".除以下成员外,此引用的属性相同:

  • 描述 -
  • 路径 - D:\ webs\CMS\MyBaseProject\bin\Debug\MyBaseProject.dll
  • 版本 - 1.0.0.0

如果我在Visual Studio中运行构建,则elmah.dll文件将与MyBaseProject.dll一起复制到MyWebProject1的bin目录中!

但是,如果我清理并运行MSBuild解决方案(通过D:\ webs\CMS> C:\ …

msbuild dependencies reference project visual-studio

271
推荐指数
9
解决办法
14万
查看次数

复制到输出目录复制文件夹结构,但只想复制文件

我有一个VS2008我想将目录中的某些文件复制到我的/bin/文件夹中.我已将文件(位于/common/browserhawk/)设置为"复制到输出目录".但是,它也会复制文件夹结构:文件被复制到/bin/common/browserhawk/

如何将这些文件复制到只是/bin/?我不想将它们存储在网站的根目录中以使它们正确复制.

相关问题:Visual Studio在编译后将.dll和.pdb添加到项目中

msbuild visual-studio-2008

87
推荐指数
6
解决办法
5万
查看次数

StyleCop MS Build魔术?谁在调用StyleCop目标?

在我们的项目文件中,我们使用StyleCop并在构建过程中运行它.我们修改了项目文件以包含StyleCop目标,如下所示:

<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v9.0\WebApplications\Microsoft.WebApplication.targets" />
<Import Project="..\..\Tools\Microsoft\StyleCop\v4.3\Microsoft.StyleCop.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
     Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
Run Code Online (Sandbox Code Playgroud)

问题是为什么这有效?谁在调用Microsoft.StyleCop.targets文件中定义的StyleCop目标?

据我所知,启动构建时唯一运行的目标是"构建"目标.我无法在Microsoft.StyleCop.targets文件之外的任何位置找到对"StyleCop"目标的任何引用.再说一次,它为什么被称为?

我想知道的原因是因为如果我们能为自己的自定义任务做类似的事情会很酷.因此,我们可以只导入我们自己的常规目标,而不是编辑我们所有的78个csproj文件:

<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v9.0\WebApplications\Microsoft.WebApplication.targets" />
<Import Project="Common.targets" />
Run Code Online (Sandbox Code Playgroud)

然后只需在该文件中导入StyleCop,以及需要在每个项目基础上完成的所有其他任务.

请帮我理解.

msbuild stylecop

9
推荐指数
1
解决办法
2532
查看次数

MSBuild不会将直接引用的dll复制到bin文件夹

我正在尝试在构建服务器上使用MSBuild命令行构建解决方案。但是,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
Run Code Online (Sandbox Code Playgroud)

当我在Visual Studio(2012或2013)中构建项目时,将创建bin文件夹,并将所有必需的dll复制到bin文件夹。Visual Studio将dll复制到bin文件夹后,MSBuild命令将起作用,直到我更改了任何引用的dll。

我读了一些关于间接引用没有被复制的帖子,但是对我来说,即使直接引用也没有被复制。

我也尝试调用目标,例如ResolveReferences,但总是收到错误消息target ResolveReferences does not exist in the project solution.sln

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

c# vb.net msbuild bamboo visual-studio

5
推荐指数
1
解决办法
1129
查看次数