有这么大的解决方案我的工作,在这里我翻了很多项目进入的NuGet包。将包装在VS.一个单独的解决方案通过.nuproj文件创建
一切工作正常,除了以下:在引导我加载一些目录的MEF能够导入,其完美的工作时,我与原来的项目工作,但现在需要的DLL文件(其中来自包)不要”牛逼使其的Bin \ Debug \ Modules文件夹。
有没有一种方法,使的NuGet其内容复制到模块文件夹? (而不是根路径)
我尝试使用不同类型的子文件夹的包,但没有成功里面。
我发现,这个问题最好的解决办法如下:
就拿需要加载的文件,并把他们的内容的文件夹。这可以简单地做:
<ItemGroup>
<Content Include=" {here go the needed files} " />
</ItemGroup>
内容文件夹只是保存文件,但它并没有将它们复制到输出文件夹上的客户端项目。为了将它们复制到所需的输出,一个.targets文件可以使用,就像下面:
<?xml version="1.0" encoding="utf-8" ?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="CopyToOutput" AfterTargets="Build">
<ItemGroup>
<FilesToCopy Include="$(MSBuildThisFileDirectory)..\content\**\*.*"/>
</ItemGroup>
<Copy
SourceFiles="@(FilesToCopy)"
DestinationFiles="@(FilesToCopy->'$(OutDir)/%(RecursiveDir)%(FileName)%(Extension)')"/>
</Target>
</Project>
请记住,目标文件名和的NuGet的ID必须是相等的目标文件被添加到项目中。
您应该能够使用content/Modules
的目标。在content
任何目录复制到上构建的bin
目录。
如果你试图使用特殊的“基于公约”的文件夹,如lib/net45
,这些都是导致安装包时,Visual Studio来自动创建一个装配参考目录。你不应该使用那些常规内容的文件。
更多细节见的documentation。