Ern*_*e S 5 c# msbuild csproj nuget visual-studio-2015
我在VS2015中有一个存在多个项目的现有解决方案。我们有一些参考的dll,我们希望将这些dll转换为nuget包,以避免检入存储库。我创建了两个软件包,并将它们放在网络上的文件共享中。软件包的安装与我的测试项目中的安装完全相同,包括调用软件包.targets文件的调用。
这是目标文件,其目标是复制非托管代码dll:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<NativeLibs Include="$(MSBuildThisFileDirectory)**\*.dll" />
<None Include="@(NativeLibs)">
<Link>%(RecursiveDir)%(FileName)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
这是在这样的nuspec文件引用:
<file src="build\win64\native\Some.Amazing.Nuget.Packge.x64.targets" target="build" />
Run Code Online (Sandbox Code Playgroud)
这是添加到我的测试解决方案csproj文件中的内容:
</Project>
.......
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <!-- This was already there-->
<Import Project="..\packages\Some.Amazing.Nuget.Packge.x64.1.1.1.1\build\Some.Amazing.Nuget.Packge.x64.targets" Condition="Exists('..\packages\Some.Amazing.Nuget.Packge.x64.1.1.1.1\build\Some.Amazing.Nuget.Packge.x64.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\Some.Amazing.Nuget.Packge.x64.1.1.1.1\build\Some.Amazing.Nuget.Packge.x64.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Some.Amazing.Nuget.Packge.x64.1.1.1.1\build\Some.Amazing.Nuget.Packge.x64.targets'))" />
</Target>
<!-- 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>
-->
</Project>
Run Code Online (Sandbox Code Playgroud)
因此,一切似乎都正常。我也有x86版本的软件包。但是,无论平台与建筑物如何,两者都可以正常工作(实际上,运行时显然是另外一回事了)。
但是,当我尝试在同一包拉进主解决方案项目旨在为,该Import部分不被添加到的csproj文件。这意味着其他DLL不会复制到bin文件夹中。我可以手动添加它,但似乎应该有必要。有没有我应该注意的设置?
| 归档时间: |
|
| 查看次数: |
1315 次 |
| 最近记录: |