在我的Visual Studio解决方案中,我有四个项目(每个项目都针对。net 3.5)——对于我的问题,只有这两个是重要的:
我在Visual studio 2008中通过点击“添加引用…”将elmah.dll引用添加到MyBaseProject中。→“浏览”选项卡→选择“elmah.dll”。
Elmah Reference的属性如下:
如果我在Visual Studio中运行构建,elmah.dll文件将被复制到我的MyWebProject1的垃圾箱目录中,以及MyBaseProject.dll!
但是,如果我清理并运行解决方案MSBuild(通过D:\web \CMS> C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe /t:ReBuild /p:Configuration=Debug MyProject.sln) MyWebProject1的bin目录中的Elmah.dll丢失 -尽管构建本身不包含警告或错误!< / p >我已经确保MyBaseProject的.csproj包含值为“true”的私人元素(这应该是Visual Studio中“本地副本”的别名):
<Reference Include="Elmah, Version=1.0.11211.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\mypath\__tools\elmah\Elmah.dll</HintPath>
**<Private>true</Private>**
</Reference>
(私有标签在默认情况下不会出现在.csproj的xml中,尽管Visual Studio说“copy local”为真。我切换“复制本地”为假-保存-并将其设置为真-保存!)
MSBuild有什么问题?我如何得到(elmah.dll)引用复制到MyWebProject1的bin?
我不想在每个项目的postbuild命令中添加一个postbuild复制操作!(假设我有许多项目依赖MyBaseProject!)