我正在尝试让Octopack包含一些不属于我的Visual项目的额外dll。
是否有一种方法可以让Octopack使用我的csproj文件(正常情况),然后只指定我需要的附加文件,而不是使用nuspec中的部分。(因为这样我必须维护nuspec中所有项目文件的列表)
目前,我正在将一些共享库复制到预构建事件中的文件夹"/providers“中。有没有一种方法可以扩展到八达通会看到和包装它们的地方呢?
发布于 2013-10-18 10:11:42
您不需要在nuspec文件中维护所有项目文件的列表,您可以这样做:
<files>
<file src="MyProject.Website\**\*.*" target="" />
</files>这将获取项目中的所有内容(所有文件和子目录)。如果这对您来说太过了,您可以利用排除规则:
<files>
<file src="MyProject.Website\**\*.*" target="" exclude="MyProject.Website\docs\admin.txt" />
</files>希望这能有所帮助。
发布于 2017-03-27 19:57:39
通过nuspec获取项目目录中的所有内容的缺点是,这可能包括您不想要的文件(请参阅答案的后续排除示例)。
一个可能更好的方法是确保在您的项目中将文件定义为“复制到bin”或“复制为内容”,然后使用/p:OctoPackEnforceAddingFiles=true的另一个命令行参数通过msbuild w/Octopack进行构建,该命令行参数告诉OctoPack将csproj和nuspec组合在一起,这样您就不必用通配符调用所有可能的路径,您只能在nuspec中包含未从常规构建过程中提取的文件。这在OctoPack的2.1.3版本中得到了支持。
您还可以通过指定csproj文件来使用常规的Nuget.exe和MSBuild,如果存在具有特定路径的nuspec,则应该将它们连接在一起。
有关更好的示例,请参阅这些参考链接。
https://getadigital.com/no/blogg/setting-up-your-project-and-teamcity-octopack-for-front-end-builds/
https://stackoverflow.com/questions/19115010
复制相似问题