我刚刚开始使用 NuGet 并试图了解它。我可能正在尝试将 NuGet 用于某些不适合的用途,但我希望有人能给我一些提示。
我的问题:我正在尝试创建一个包含不同文件的包。文件具有不同的类型(图像、文本文件等)。我希望包能够工作,以便将文件添加到我的应用程序根目录中,但不包含在我的 Visual Studio 项目中。我已经尝试过了,但文件总是添加到项目中。有没有解决的办法?
谢谢
我刚刚开始使用 NuGet 并试图了解它。我可能正在尝试将 NuGet 用于某些不适合的用途,但我希望有人能给我一些提示。
我的问题:我正在尝试创建一个包含不同文件的包。文件具有不同的类型(图像、文本文件等)。我希望包能够工作,以便将文件添加到我的应用程序根目录中,但不包含在我的 Visual Studio 项目中。我已经尝试过了,但文件总是添加到项目中。有没有解决的办法?
谢谢
今天没有对此的直接支持。安装包时,您放在内容文件夹中的任何内容都会添加到您的项目中。
但是,您应该能够使用 install.ps1 脚本来实现此结果,例如:
您可以将文件放在 nuget 数据包中的另一个文件夹(不是内容)中,并在构建时将 .targets 文件添加到您的 nuget 数据包中复制文件。
MyProject.nuget 文件:
...
<files>
<file src="bin\$configuration$\$id$.pdb" target="lib\net45"/>
<file src="C:\MyResourceFolder\**" target="resources"/>
<file src="MyProject.targets" target="build"/>
</files>
</package>
MyProject.targets 文件:
<?xml version="1.0"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<None Include="$(MSBuildThisFileDirectory)\..\resources\**">
<Link>\Recources\%(RecursiveDir)\%(Filename)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>
当您构建最终应用程序时,文件将被复制到构建目标文件夹。